Вы можете использовать функцию 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()
Необходимо было бы действительно определить точно, под чем Вы подразумевали, "сколько памяти используется для конкретного объекта". Например, Вы могли иметь в виду, "если бы этот объект был собран "мусор", сколько было бы освобождено" - или Вы могли иметь в виду, "сколько памяти делает этот объект и все, чего это касается, поднимают".
Ваша точка о строковом интернировании является хорошим примером. Предположим, что Вы делаете:
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
никогда не создавался (включая не интернирование каждого из его элементов) затем, больше памяти никогда не будет требоваться.
Если можно быть более конкретны относительно точно, что Вы имеете в виду, мы можем помогать Вам. Это - сложный вопрос все же.
Профилировщик Памяти МУРАВЬЕВ представляет потребление памяти кода.NET. У меня были большие результаты с ним в прошлом.
Это, кажется, одноуровневый элемент этого вопроса о Delphi. Наивный алгоритм не примет во внимание различие между агрегированием и составом. Даже алгоритм на основе метки и развертки не скажет Вам, должна ли хеш-таблица была вырастить свой внутренний массив, потому что на объект сослался он. Вы, вероятно - более обеспеченное профилирование Вашего приложения для множества сценариев и графического изображения использования ресурсов против N, где N является некоторой мерой масштаба Вашего набора данных.