!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

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

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

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

ホットタグ

アーカイブ