{"id":145,"date":"2020-08-03T18:01:58","date_gmt":"2020-08-03T18:01:58","guid":{"rendered":"https:\/\/michaeljohnsteiner.com\/?p=145"},"modified":"2020-12-26T20:45:05","modified_gmt":"2020-12-26T20:45:05","slug":"measuresize-cs","status":"publish","type":"post","link":"https:\/\/michaeljohnsteiner.com\/index.php\/2020\/08\/03\/measuresize-cs\/","title":{"rendered":"MeasureSize.cs"},"content":{"rendered":"\n<p>Get the Amount of Available Memory for Allocation<\/p>\n\n\n\n<p>Updated: Dec-26,2020<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using System;\npublic class MeasureSize&lt;T>\n{\n    private const int   NumberOfInstances = 100000;\n    private       T[][] _memArray;\n    public MeasureSize()\n    {\n        _memArray = new T[NumberOfInstances][];\n    }\n    public long GetByteSize()\n    {\n        var oldSize = GC.GetTotalMemory(true);\n        for (var i = 0; i &lt; NumberOfInstances; i++)\n            _memArray[i] = new T[1];\n        var newSize = GC.GetTotalMemory(true);\n        GC.KeepAlive(_memArray);\n        if (oldSize > newSize)\n            return GetByteSize();\n        return (newSize - oldSize) \/ NumberOfInstances;\n    }\n    public long GetByteSize(int size)\n    {\n        _memArray = new T[size][];\n        var oldSize = GC.GetTotalMemory(true);\n        for (var i = 0; i &lt; size; i++)\n            _memArray[i] = new T[1];\n        var newSize = GC.GetTotalMemory(true);\n        GC.KeepAlive(_memArray);\n        if (oldSize > newSize)\n            return GetByteSize(size);\n        return (newSize - oldSize) \/ size;\n    }\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Get the Amount of Available Memory for Allocation Updated: Dec-26,2020<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[70,71,49],"_links":{"self":[{"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/posts\/145"}],"collection":[{"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":2,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/posts\/145\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/posts\/145\/revisions\/317"}],"wp:attachment":[{"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/media?parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/categories?post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michaeljohnsteiner.com\/index.php\/wp-json\/wp\/v2\/tags?post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}