!dumpheapの結果が間違っています

ジェイソン

コマンド「!dumpheap-min 62 -max 64」を実行すると、次の結果が見つかりました。文字列の数は43,149,740ですが、合計サイズは5,146,310バイトなので、合計サイズが間違っていますね。

Statistics:
              MT    Count    TotalSize Class Name
00007fff0faaf518        1          100 System.Runtime.Serialization.Formatters.Binary.InternalPrimitiveTypeE[]
00007fff0fb22c98        2          200 System.Int16[]
00007fff0fb06888       36         3532 System.Byte[]
00007fff0fb02090      174        17124 System.Char[]
00007fff0fb03920      545        54500 System.Int32[]
00007fff0fb00e08 **43149740**      **5146310** System.String
Total 43150498 objects
トーマス・ウェラー

質問で提供された情報は、問題の原因を明確に伝えるのに十分ではない可能性があります。これは、再現できないバージョン固有の問題であるか、ヒープが壊れている(実行!verifyheap可能性があります

次のプログラムは、長さ64(128バイトのデータ)、長さ200(400バイトのデータ)、および長さ1024(2048バイトのデータ)の文字列を作成します。

using System;
using System.Collections.Generic;

namespace StringSizeDumpheap
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> smallstrings = CreateList(1000, 64);
            List<string> mediumstrings = CreateList(1000, 200);
            List<string> largestrings = CreateList(1000, 1024);
            const string dbginfo = "Debug now. Use !dumpheap -min -max with 0n140/0n144, 0n400/0n440 and 0n2000/0n2200.";
            Console.WriteLine(dbginfo);
            Console.ReadLine();
            // Access strings to prevent optimization
            smallstrings[0] = "";
            mediumstrings[0] = "";
            largestrings[0] = "";
        }

        private static List<string> CreateList(int count, int size)
        {
            List<string> list = new List<string>();
            for (int i = 0; i < count; i++)
            {
                list.Add(new string('x', size));
            }
            return list;
        }
    }
}

そのデモプログラムを使用すると、WinDbg + SOSはWinDbg6.2.9200で期待される結果をもたらします(.NET 4.5.2としてコンパイルされたプログラム、32ビット優先、デバッグビルド)

0:004> !dumpheap -stat -mt 70dde918        -min 0n140 -max 0n144
Statistics:
      MT    Count    TotalSize Class Name
70dde918     1002       142284 System.String
Total 1002 objects

0:004> !dumpheap -stat -mt 70dde918        -min 0n380 -max 0n500
Statistics:
      MT    Count    TotalSize Class Name
70dde918     1000       414000 System.String
Total 1000 objects

0:004> !dumpheap -stat -mt 70dde918        -min 0n2000 -max 0n2200
Statistics:
      MT    Count    TotalSize Class Name
70dde918     1000      2062000 System.String
Total 1000 objects

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySQLの結合が間違っています結果

分類Dev

eulerProjectの関数の結果が間違っています

分類Dev

MDX結果の合計が間違っています

分類Dev

ElasticSearch結果のスコアが間違っています

分類Dev

dimplejs散布図の結果が間違っています

分類Dev

Application.Sumの結果が間違っています

分類Dev

NSDateFormatter dateFromStringの結果が間違っていますか?

分類Dev

Python math.arctan()の結果が間違っていますか?

分類Dev

usort関数の結果が間違っています

分類Dev

Valgrindを使用したlongdoubleのstd :: fpclassifyの結果が間違っています

分類Dev

Haskell repa:2つの配列の内積結果が間違っています

分類Dev

Pythonを使用したGoogleScrapeの結果の数が間違っています

分類Dev

PHPのarray_count_valuesの結果が間違っています

分類Dev

phpでxpathを使用すると、結果の数が間違っています

分類Dev

ElasticsearchMatchQueryが間違った結果を返しています

分類Dev

Objective-Cでは、fabsf()の結果タイプが間違っています

分類Dev

Conv2dTensorflowの結果が間違っています-精度= 0.0000e + 00

分類Dev

タイムデルタ操作の結果が間違っています

分類Dev

hash_djb2 PHPの結果が間違っていますか?

分類Dev

setIntervalによる関数の結果が間違っています

分類Dev

Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

分類Dev

クエリ結果でのHibernate結合継承のタイプが間違っています

分類Dev

グループ連結の問題、結果は間違っています

分類Dev

2つの日付を比較するJavascriptの結果が間違っている

分類Dev

SortBy Valuesの結果が間違っているのはなぜですか?

分類Dev

検索結果テーブルから移動するときのUIBarButtonItemの位置が間違っています

分類Dev

PHP / MYSQLクエリの結果がなく、エンコードが間違っていますか?

分類Dev

Scalaではn個の数値の合計の結果が間違っています

分類Dev

Visual BasicのForループの結果、ループの数が間違っています

Related 関連記事

  1. 1

    MySQLの結合が間違っています結果

  2. 2

    eulerProjectの関数の結果が間違っています

  3. 3

    MDX結果の合計が間違っています

  4. 4

    ElasticSearch結果のスコアが間違っています

  5. 5

    dimplejs散布図の結果が間違っています

  6. 6

    Application.Sumの結果が間違っています

  7. 7

    NSDateFormatter dateFromStringの結果が間違っていますか?

  8. 8

    Python math.arctan()の結果が間違っていますか?

  9. 9

    usort関数の結果が間違っています

  10. 10

    Valgrindを使用したlongdoubleのstd :: fpclassifyの結果が間違っています

  11. 11

    Haskell repa:2つの配列の内積結果が間違っています

  12. 12

    Pythonを使用したGoogleScrapeの結果の数が間違っています

  13. 13

    PHPのarray_count_valuesの結果が間違っています

  14. 14

    phpでxpathを使用すると、結果の数が間違っています

  15. 15

    ElasticsearchMatchQueryが間違った結果を返しています

  16. 16

    Objective-Cでは、fabsf()の結果タイプが間違っています

  17. 17

    Conv2dTensorflowの結果が間違っています-精度= 0.0000e + 00

  18. 18

    タイムデルタ操作の結果が間違っています

  19. 19

    hash_djb2 PHPの結果が間違っていますか?

  20. 20

    setIntervalによる関数の結果が間違っています

  21. 21

    Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

  22. 22

    クエリ結果でのHibernate結合継承のタイプが間違っています

  23. 23

    グループ連結の問題、結果は間違っています

  24. 24

    2つの日付を比較するJavascriptの結果が間違っている

  25. 25

    SortBy Valuesの結果が間違っているのはなぜですか?

  26. 26

    検索結果テーブルから移動するときのUIBarButtonItemの位置が間違っています

  27. 27

    PHP / MYSQLクエリの結果がなく、エンコードが間違っていますか?

  28. 28

    Scalaではn個の数値の合計の結果が間違っています

  29. 29

    Visual BasicのForループの結果、ループの数が間違っています

ホットタグ

アーカイブ