Autor Téma: Benchmark: Dictionary vs StringList vs HashedStringList vs SQLite in Memory  (Přečteno 1475 krát)

Offline Miroslav Baláž

  • Plnoletý
  • ***
  • Příspěvků: 197
  • Karma: 5
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Réžia cyklu 1-7 spôsobuje 1,4 násobný rozdiel v čase!
Nevim, jestli si uvedomujes, ze se jedna o (23-15 ms)/50000/7 = ~23 ns per cycle.

Ve svetle toho me spis udivuje, jak dokaze vyndat zada z Dictionary za jen dvojnasobnou dobu tj. ~43 ns
Dost vtipne to pride, ze ked od 15 ms odcitam reziu na cykly, ktora je tak okolo 7-8 ms, tak to "vyndat .." je hotove, za cas okolo 8 milisekund..
Voci tomu so 400 ms stoja SQLite inMemory, alebo StringList..
Teda prakticky najblizsi konkurenti su 50 x pomalsi. Tam je rezia cyklu zanedbatelna a casy sa od pokusu k pokusu menia o tých +-20 ms.
Cas 15 ms pre Dictionary to dava na chlp stabilne. Aj ked to spustim hocikedy.
Nie je v tom ani ziadny podvod, pretoze, stale vrati true 200 000x z celkovo 350 000 pokusov. Teda nie je to, ze by prebehol, len nejakym svindlom..
A kazdy z tych 350k pokusov znamena ze sa prehliada 221 poloziek. A to cele za 8 ms aj s s ponuknutim prislusnej Value v Dictionary!
« Poslední změna: 20-12-2017, 20:22:52 od mibainfo »

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 170
  • Karma: 15
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Excellent
Rated 1 time
Tak to jsme dva a rekl bych, ze to tak kdysi i byvalo. Na tu consolovku jsem vzal nejaky ten Berlin 10.1, co je zdarma a delat se v tom skoro neda, protoze D2007 mi nejde spustit, jelikoz mi nejaky update W10 nekam odpratal starou verzi .NET frameworku, ktery to vyzaduje :-(

Zkus tohle: https://blog.dummzeuch.de/2013/11/10/delphi-2007-on-windows-8-1/ (Delam to po kazdem velkem updatu W10...)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2047
  • Karma: 103
    • Verze Delphi: D2007, XE3, DX10
Zkus tohle: https://blog.dummzeuch.de/2013/11/10/delphi-2007-on-windows-8-1/ (Delam to po kazdem velkem updatu W10...)
Diky. Funguje.

Ja uz jsem to jednou v minulosti taky musel hledat a kopirovat, ale narozdil od nej jsem to suse nakopiroval do C:\Windows\Microsoft.NET\Framework\v2.0.50727\ (protoze 64bitovy .NET ma samostatny adresar C:\Windows\Microsoft.NET\Framework64\)/

Jen jsem nemel uz motivaci to zprovoznovat, tak jsi me trochu postouchnul :-)

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: