C#: Использование памяти объекта

Вы можете использовать функцию wx.TextCtrl write для этого.

import wx

class MainFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, title='Test TextCtrl')
        self.panel = wx.Panel(self)
        self.text1 = wx.TextCtrl(self.panel,value="My Text",pos=(10,10),size=(350,30))
        self.button = wx.Button(self.panel, -1, "Click",pos=(10,40))
        self.button.Bind(wx.EVT_BUTTON, self.On_Button)
        self.text1.Enable(False)
        self.Show()

    def On_Button(self, event):
        self.text1.write(" Click ")

if __name__ == '__main__':
    app = wx.App()
    frame = MainFrame()
    app.MainLoop()
5
задан Svish 17 February 2009 в 08:33
поделиться

4 ответа

Необходимо было бы действительно определить точно, под чем Вы подразумевали, "сколько памяти используется для конкретного объекта". Например, Вы могли иметь в виду, "если бы этот объект был собран "мусор", сколько было бы освобождено" - или Вы могли иметь в виду, "сколько памяти делает этот объект и все, чего это касается, поднимают".

Ваша точка о строковом интернировании является хорошим примером. Предположим, что Вы делаете:

List<string> internedStrings = new List<string>();
List<string> nonInternedStrings = new List<string>();
for (int i=0; i < 1000; i++)
{
    string tmp = new string(' ', i+1);
    nonInternedStrings.Add(tmp);
    tmp = tmp.Intern();
    internedStrings.Add(tmp);
}

Делает nonInternedStrings действительно поднимите больше памяти, чем internedStrings? Если internedStrings были собраны "мусор", это не освободит столько же памяти - но если internedStrings никогда не создавался (включая не интернирование каждого из его элементов) затем, больше памяти никогда не будет требоваться.

Если можно быть более конкретны относительно точно, что Вы имеете в виду, мы можем помогать Вам. Это - сложный вопрос все же.

2
ответ дан 13 December 2019 в 22:17
поделиться

Профилировщик Памяти МУРАВЬЕВ представляет потребление памяти кода.NET. У меня были большие результаты с ним в прошлом.

5
ответ дан 13 December 2019 в 22:17
поделиться

Вы судили Профилировщика CLR 2.0?

1
ответ дан 13 December 2019 в 22:17
поделиться

Это, кажется, одноуровневый элемент этого вопроса о Delphi. Наивный алгоритм не примет во внимание различие между агрегированием и составом. Даже алгоритм на основе метки и развертки не скажет Вам, должна ли хеш-таблица была вырастить свой внутренний массив, потому что на объект сослался он. Вы, вероятно - более обеспеченное профилирование Вашего приложения для множества сценариев и графического изображения использования ресурсов против N, где N является некоторой мерой масштаба Вашего набора данных.

2
ответ дан 13 December 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: