linux学习记录
分类:
2010-09-27 17:12:41
NeoShineHA5.0企业版一期中,如果界面打开时间比较长的话会造成刷新速度比较慢,同时在界面刷新时,占用的CPU和内存会很高且持续时间比较长。因此,必须提高界面刷新的速度,提高性能。
首先去除程序中的无关代码。去除MainTree类中update函数的如下两段代码:
self.always_expand = 1
if True: #current_page == 0 or current_page == 1 : self.widget.get_column(1).set_visible(True) self.always_expand = self.widget.connect(\ 'row-collapsed', always_expand, True) self.record_expand = self.widget.connect(\ 'row-expanded', record_expand, True) model_new = self.widget.get_model() self.fake_collapsed = model_new.connect(\ 'row-inserted', fake_collapsed, self.widget) |
if True: #current_page == 0 or current_page == 1:
global treeview_status global last_page for path in treeview_status: if treeview_status[path] == True: self.widget.expand_row(path, False) elif treeview_status[path] == False: self.widget.collapse_row(path) |
去除MainWindow类__init__(self)函数的如下两段代码:
self.vadjl = maintree_sw.get_vadjustment()
self.vadjl.connect ('value_changed', self.syncnodes, None) |
self.vadjr = mainview_sw.get_vadjustment()
self.vadjr.connect ('value_changed', self.syncrcs, None) |
其次,修改程序的结构。添加一个新类TableView,通过TableView类代替原函数build_nodes_table来显示界面右侧的资源与节点状态。在界面刚打开时进行测试,刷新时修改后的程序比修改前速度大概快0.5秒钟左右。
在MainWindow类的select_view函数中,去除如下代码:
global last_iter
widget_removed = 0 self.build_nodes_table() self.syncnodes(self.vadjl, None) |
同时添加如下代码:
for child in self.mainview_sw.get_children() :
self.mainview_sw.remove(child) tableview = TableView() self.mainview_sw.add_with_viewport(tableview.widget) |