Yesterday, I did PM Melba23, telling him I didn't agree with the result of his test and explained him why.
He answered me right now, writing : "Your logic seems fine to me - go ahead and post a correction. And in future you do not need my permission to do so."
Imho there won't be any future because finding something wrong in any Melba's script is harder than looking for a needle in a haystack. And God only knows how many MB23's scripts I read and tested since March 2018 (when I became a Forum member) as all his scripts run fluently and are a big help.
So the problem in the script above is that one crucial line is missing, because TimerInit() isn't reinitialized when we click on the "Compare" button, so the results of the test are really biased.
As soon as we add the missing line, it shows constantly that "Compare" is 5 times faster than "Delete All". Here is the amended script :
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
Global $aList[100]
$hGUI = GUICreate("Test", 500, 500)
$cLV = GUICtrlCreateListView("Data stored", 10, 10, 400, 400)
For $i = 0 To 99
GUICtrlCreateListViewItem("Item " & $i, $cLV)
$aList[$i] = $i
Next
$cAll = GUICtrlCreateButton("All delete", 10, 450, 80, 30)
$cComp = GUICtrlCreateButton("Compare", 250, 450, 80, 30)
GUISetState()
; Alter a single element
$aList[9] = 100
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $cAll
$nBegin = TimerInit()
_GUICtrlListView_DeleteAllItems($cLV)
For $i = 0 To 99
GUICtrlCreateListViewItem("Item " & $i, $cLV)
Next
ConsoleWrite(TimerDiff($nBegin) & @CRLF)
Case $cComp
$nBegin = TimerInit() ; this important line was missing <================
For $i = 0 To 99
If _GUICtrlListView_GetItemText($cLV, $i) <> "Item " & $aList[$i] Then
_GUICtrlListView_SetItemText($cLV, $i, "Item " & $aList[$i])
EndIf
Next
ConsoleWrite(TimerDiff($nBegin) & @CRLF)
EndSwitch
WEnd
Thanks MB, because you could have amended your own script by yourself. Bravo for your fair-play