Opened 13 years ago
Closed 12 years ago
#2114 closed Feature Request (Completed)
Performance increase to _ArrayDisplay()
Reported by: | Beege | Owned by: | guinness |
---|---|---|---|
Milestone: | 3.3.9.5 | Component: | Standard UDFs |
Version: | Severity: | None | |
Keywords: | _arraydisplay | Cc: |
Description
I notice today that _arraydisplay() does not disable redraw before adding new items to the listview. This can have a big impact on the performance.
Changing the main loop that adds the listview items to:
GUICtrlSendMsg($hListView, 11, 0, 0);$WM_SETREDRAW ; Fill listview For $i = 0 To $iUBound GUICtrlCreateListViewItem($avArrayText[$i], $hListView) Next GUICtrlSendMsg($hListView, 11, 1, 0);$WM_SETREDRAW
For a quick test I ran this small script:
Global $g_aArray[1] = [1] For $i = 2 To 20 _ArrayAdd($g_aArray, $i) Next Global $g_aArrayCombo = _ArrayCombinations($g_aArray, 7, ",") _ArrayDisplay($g_aArrayCombo)
My times before and after were:
Before - 6569.94750836973
After - 1508.47224799844
Attachments (0)
Change History (5)
comment:1 Changed 13 years ago by AdmiralAlkex
comment:3 Changed 13 years ago by Jpm
Don't fully understand why not redrawing something which is not an displayed windows as an perf impact. But well it has.
Not sure such big length of arraydisplay is something we have to optimized. The user will take sometime to look at ...
comment:4 Changed 13 years ago by Beege
Don't fully understand why not redrawing something which is not an displayed windows as an perf impact.
I agree and have been kinda wondering the same thing. I was always under the impression if a window was minimized or not visible, the redraw would not happen.
Not sure such big length of arraydisplay is something we have to optimized.
ok then :(
comment:5 Changed 12 years ago by guinness
- Milestone set to 3.3.9.5
- Owner set to guinness
- Resolution set to Completed
- Status changed from new to closed
Added by revision [7242] in version: 3.3.9.5
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Sounds good