Benito van der Zander
Benito van der Zander
Or this one: ``` procedure TForm1.Button1Click(Sender: TObject); var f: TFLRE; tc: types.DWORD; i: Integer; r: TRegExpr; foo: TFLREMultiCaptures; foo2: TFLRECaptures; RE,input: String; begin RE := '\s*^ISBN:\s*'; //I do not know...
All FPC's default ``` -MObjFPC -Scgi -Cg -O2 -g -gl -l -vewnhibq -dLCL -dLCLgtk2 ``` on an Intel P8600
Actually the SetLength call a big problem Without it, UTF8MatchAll and UTF8Test have around the same speed. Still 6s vs Sorokin's 3s Most time is spend there: http://i.imgur.com/HkeCVMy.png http://i.imgur.com/xEzWHr1.png
Actually, if I compile everything myself, FLRE is twice as fast. Perhaps the version of Sorokin's in fpc's RTL was compiled with different compiler flags
`Delete` is not so good, not fully deleting the indices. If there was a list of deleted entities, they could be reused. It could put a pointer/index to the next...
Still it is not optimal for a single threaded map. I keep learning new things about hashmaps If the map would store the hash of each entitiy, it could be...
>``` > movdqa xmm2,[rdi] > movdqa xmm3,[rdi] > movdqa xmm4,[rdi+16] > movdqa xmm5,[rdi+16] >``` That assumes rdi is aligned, does it not? But it is not aligned since the offset...
It is also not fully correct. E.g. K (U+212a) should match K or k case insensitively But table lookups can be rather slow on modern systems when the table is...
All I was trying to do is to check if a single character is in some Unicode class. ``` TFLRE.Create('^[\p{Nd}\p{Nl}\p{No}\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}]$',[rfUTF8]); ``` would work as well, with the check negated at...
But queue it after #10 and #22