public void CanParseMemoryDumpFromPackageWithAndroid11([Values(true, false)] bool windowsEndLines)
    {
        var stats = new AndroidMemoryStatistics();

        if (windowsEndLines)
        {
            stats.Parse(kPackageMemoryDumpAndroid11.Replace("\n", "\r\n"));
        }
        else
        {
            stats.Parse(kPackageMemoryDumpAndroid11);
        }

        Assert.AreEqual(688561 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Total));
        Assert.AreEqual(5265 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.System));
        Assert.AreEqual(396792 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(85032 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Graphics));
        Assert.AreEqual(1536 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Stack));
        Assert.AreEqual(10152 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(746132 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.Total));
        Assert.AreEqual(0 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.System));
        Assert.AreEqual(399380 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(85032 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.Graphics));
        Assert.AreEqual(1548 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.Stack));
        Assert.AreEqual(24732 * kKiloByte, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(504803 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        Assert.AreEqual(12110 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.JavaHeap));
        Assert.AreEqual(550768 * kKiloByte, stats.GetValue(MemoryGroup.HeapSize, MemoryType.NativeHeap));
        Assert.AreEqual(16146 * kKiloByte, stats.GetValue(MemoryGroup.HeapSize, MemoryType.JavaHeap));
    }
    public void CanParseHugeValues([Values(true, false)] bool windowsEndLines)
    {
        const UInt64 kOneMegaByte = 1000;
        const UInt64 kOneGigabyte = 1000 * kOneMegaByte;
        const UInt64 kOneTerabyte = 1000 * kOneGigabyte;

        var inputs = new[] { kOneGigabyte, kOneTerabyte };

        foreach (var i in inputs)
        {
            // Note: Report contains values in kilobytes
            var contents = string.Format(kProcessWithHugeValues, i);

            var stats = new AndroidMemoryStatistics();
            if (windowsEndLines)
            {
                stats.Parse(contents.Replace("\n", "\r\n"));
            }
            else
            {
                stats.Parse(contents);
            }
            Assert.AreEqual(i * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        }
    }
    public void CanParseMemoryDumpFromPackage([Values(true, false)] bool windowsEndLines)
    {
        var stats = new AndroidMemoryStatistics();

        if (windowsEndLines)
        {
            stats.Parse(kPackageMemoryDump.Replace("\n", "\r\n"));
        }
        else
        {
            stats.Parse(kPackageMemoryDump);
        }

        Assert.AreEqual(312674 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Total));
        Assert.AreEqual(169230 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.System));
        Assert.AreEqual(43210 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(107884 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Graphics));
        Assert.AreEqual(36 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Stack));
        Assert.AreEqual(1234 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(0, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(0, stats.GetValue(MemoryGroup.ResidentSetSize, MemoryType.Total));

        Assert.AreEqual(157805 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        Assert.AreEqual(1184 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.JavaHeap));
    }
Beispiel #4
0
    public void CanParseMemoryDumpFromPackage()
    {
        var stats = new AndroidMemoryStatistics();

        stats.Parse(kPackageMemoryDump);

        Assert.AreEqual(312674 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Total));
        Assert.AreEqual(169230 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.System));
        Assert.AreEqual(43210 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(107884 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Graphics));
        Assert.AreEqual(36 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Stack));
        Assert.AreEqual(1234 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(157805 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        Assert.AreEqual(1184 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.JavaHeap));
    }
Beispiel #5
0
    public void CanParseHugeValues()
    {
        const UInt64 kOneMegaByte = 1000;
        const UInt64 kOneGigabyte = 1000 * kOneMegaByte;
        const UInt64 kOneTerabyte = 1000 * kOneGigabyte;

        var inputs = new[] { kOneGigabyte, kOneTerabyte };

        foreach (var i in inputs)
        {
            // Note: Report contains values in kilobytes
            var contents = string.Format(kProcessWithHugeValues, i);
            var stats    = new AndroidMemoryStatistics();
            stats.Parse(contents);
            Assert.AreEqual(i * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        }
    }
Beispiel #6
0
    public void CanParseMemoryDumpFromProcess()
    {
        var stats = new AndroidMemoryStatistics();

        stats.Parse(kSystemProcessDump);


        Assert.AreEqual(1383 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Total));
        Assert.AreEqual(903 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.System));
        Assert.AreEqual(156 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(2 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Graphics));
        Assert.AreEqual(4 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Stack));
        Assert.AreEqual(1 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(2 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        Assert.AreEqual(3 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.JavaHeap));
        Assert.AreEqual(5 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.Total));
    }
    public void CanParseMemoryDumpFromProcess([Values(true, false)] bool windowsEndLines)
    {
        var stats = new AndroidMemoryStatistics();

        if (windowsEndLines)
        {
            stats.Parse(kSystemProcessDump.Replace("\n", "\r\n"));
        }
        else
        {
            stats.Parse(kSystemProcessDump);
        }

        Assert.AreEqual(1383 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Total));
        Assert.AreEqual(903 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.System));
        Assert.AreEqual(156 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.NativeHeap));
        Assert.AreEqual(2 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Graphics));
        Assert.AreEqual(4 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.Stack));
        Assert.AreEqual(1 * kKiloByte, stats.GetValue(MemoryGroup.ProportionalSetSize, MemoryType.JavaHeap));

        Assert.AreEqual(2 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.NativeHeap));
        Assert.AreEqual(3 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.JavaHeap));
        Assert.AreEqual(5 * kKiloByte, stats.GetValue(MemoryGroup.HeapAlloc, MemoryType.Total));
    }