Skip to content

Instantly share code, notes, and snippets.

@synopse
Created July 3, 2021 12:34
Show Gist options
  • Save synopse/f2106dfcf01cab63ddb78021a78b552e to your computer and use it in GitHub Desktop.
Save synopse/f2106dfcf01cab63ddb78021a78b552e to your computer and use it in GitHub Desktop.
mORMot 2 tests on Delphi 2009
mORMot2 Regression Tests
--------------------------
1. Core units
1.1. Core base:
- RecordCopy: 743 assertions passed 570us
- TRawUtf8List: 190,172 assertions passed 55.64ms
- TDynArray: 1,091,804 assertions passed 123.19ms
- TDynArrayHashed: 1,599,070 assertions passed 1.13s
- TSynDictionary: 238,650 assertions passed 326.98ms
- TSynQueue: 6,541,501 assertions passed 179.43ms
- TSynNameValue: 40,032 assertions passed 5.19ms
- TRawUtf8Interning: 2,000,013 assertions passed 108.13ms
500000 interning 16 KB in 37.40ms i.e. 12.7M/s, aver. 0us, 407.9 MB/s
500000 direct 15.2 MB in 6.62ms i.e. 71.9M/s, aver. 0us, 2.2 GB/s
- TObjArray: 3,230 assertions passed 1.28ms
- Custom RTL: 77,552 assertions passed 540.61ms
FillChar in 36.07ms, 10.7 GB/s
Move in 3.75ms, 4.1 GB/s
small Move in 6.79ms, 3.2 GB/s
big Move in 87.46ms, 4.4 GB/s
FillCharFast [] in 34.81ms, 11.1 GB/s
MoveFast [] in 3.49ms, 4.4 GB/s
small MoveFast [] in 6.71ms, 3.2 GB/s
big MoveFast [] in 89.43ms, 4.3 GB/s
- Fast string compare: 41 assertions passed 197us
- IdemPropName: 228 assertions passed 332us
- Url encoding: 167 assertions passed 718us
- GUID: 10,019 assertions passed 1.23ms
- ParseCommandArguments: 232 assertions passed 77us
- IsMatch: 4,250 assertions passed 448us
- TExprParserMatch: 140 assertions passed 163us
- Soundex: 35 assertions passed 89us
- Numerical conversions: 2,542,146 assertions passed 320.22ms
100000 FloatToText in 16.91ms i.e. 5.6M/s, aver. 0us, 107.2 MB/s
100000 str in 15.18ms i.e. 6.2M/s, aver. 0us, 144.4 MB/s
100000 DoubleToShort in 19.01ms i.e. 5M/s, aver. 0us, 95.3 MB/s
- Integers: 144,965 assertions passed 44.25ms
- crc32c: 310,089 assertions passed 61.35ms
pas 402.7 MB/s fast 2 GB/s sse42 4.1 GB/s
- Random32: 221,003 assertions passed 2.27ms
240000 Random32 in 2.14ms i.e. 106.8M/s, aver. 0us, 427.2 MB/s
- Bloom filters: 2,010,072 assertions passed 122.77ms
- DeltaCompress: 87 assertions passed 5.67ms
- Curr 64: 20,056 assertions passed 1.84ms
- CamelCase: 11 assertions passed 82us
- Bits: 22,985 assertions passed 7.78ms
- Ini files: 7,028 assertions passed 27.34ms
- UTF8: 1,206,879 assertions passed 964.20ms
- Url decoding: 1,101 assertions passed 172us
- Mime types: 438 assertions passed 2.24ms
- Baudot code: 10,007 assertions passed 18.15ms
- Iso 8601 date and time: 200,831 assertions passed 14.52ms
- Time zones: 457 assertions passed 197.72ms
- Quick select: 4,015 assertions passed 116.71ms
- TSynCache: 404 assertions passed 134us
- TSynFilter: 1,005 assertions passed 1.84ms
- TSynValidate: 677 assertions passed 426us
- TSynLogFile: 49 assertions passed 426us
- TSynUniqueIdentifier: 1,300,002 assertions passed 402.39ms
200000 ComputeNew in 6.14ms i.e. 31M/s, aver. 0us
Total failed: 0 / 19,802,186 - Core base PASSED 4.79s
1.2. Core process:
- RTTI: 1,338 assertions passed 556us
- Url encoding: 200 assertions passed 371us
- Encode decode JSON: 426,127 assertions passed 90.85ms
- Wiki markdown to html: 56 assertions passed 129us
- Variants: 99 assertions passed 75us
- Mustache renderer: 156 assertions passed 864us
- TDocVariant: 91,819 assertions passed 98.11ms
- TDecimal128: 17,446 assertions passed 1.45ms
- BSON: 245,071 assertions passed 3.46ms
100000 TBsonObjectID.ComputeNew in 2.99ms i.e. 31.8M/s, aver. 0us
- TSelectStatement: 229 assertions passed 148us
- TSynMonitorUsage: 1,202 assertions passed 197us
Total failed: 0 / 783,743 - Core process PASSED 199.22ms
1.3. Core compression:
- In memory compression: 21 assertions passed 313.85ms
- GZIP format: 30 assertions passed 188.64ms
- ZIP format: 872 assertions passed 2.86s
- SynLZ: 23,616 assertions passed 95.85ms
- TAlgoCompress: 458 assertions passed 425.74ms
TAlgoSynLZ 3.8 MB->2.7 MB: comp 213:151MB/s decomp 198:280MB/s
TAlgoDeflate 3.8 MB->2.2 MB: comp 18:10MB/s decomp 65:114MB/s
TAlgoDeflateFast 3.8 MB->2.2 MB: comp 39:23MB/s decomp 65:111MB/s
Total failed: 0 / 24,997 - Core compression PASSED 3.91s
1.4. Core crypto:
- MD5: 166 assertions passed 1.02ms
- SHA1: 8 assertions passed 3.38ms
- SHA256: 15 assertions passed 20.60ms
- SHA512: 27 assertions passed 46.09ms
- SHA3: 8,225 assertions passed 37.93ms
- AES: 58,612 assertions passed 539.97ms
cypher with AES-NI: 156us, without: 892us
- AES_GCM: 215 assertions passed 274us
- RC4: 1,016 assertions passed 1.93ms
- Hashes: 6 assertions passed 50.07ms
- Base64: 12,064 assertions passed 22.25ms
- CompressShaAes: 1,683 assertions passed 2ms
- TAesPNRG: 131,313 assertions passed 39.67ms
100000 mORMot Random32 in 2.53ms i.e. 37.6M/s, aver. 0us, 150.4 MB/s
mORMot FillRandom in 138us, 691 MB/s
- CryptDataForCurrentUser: 5,000 assertions passed 8.07ms
2000 AES-CFB in 4.85ms i.e. 402.7K/s, aver. 2us, 214.9 MB/s
- CryptDataForCurrentUserApi: 5,000 assertions passed 909.70ms
2000 DPAPI in 908.75ms i.e. 2.1K/s, aver. 454us, 1.1 MB/s
- JWT: 162,726 assertions passed 611.38ms
1000 HS256 in 1.85ms i.e. 526.4K/s, aver. 1us
1000 HS384 in 2.97ms i.e. 328.2K/s, aver. 2us
1000 HS512 in 3.07ms i.e. 318K/s, aver. 3us
1000 S3224 in 1.34ms i.e. 728.2K/s, aver. 1us
1000 S3256 in 1.47ms i.e. 661.1K/s, aver. 1us
1000 S3384 in 1.35ms i.e. 719.1K/s, aver. 1us
1000 S3512 in 1.37ms i.e. 712.8K/s, aver. 1us
1000 S3S128 in 1.35ms i.e. 722.3K/s, aver. 1us
1000 S3S256 in 1.38ms i.e. 705K/s, aver. 1us
100 ES256 in 238.50ms i.e. 419/s, aver. 2.38ms
- TBinaryCookieGenerator: 82,944 assertions passed 8.60ms
16384 generate in 2.81ms i.e. 5.5M/s, aver. 0us
16384 validate in 1.84ms i.e. 8.4M/s, aver. 0us
- Catalog: 210 assertions passed 150us
- Benchmark: 87,500 assertions passed 622.56ms
2500 crc32c in 1.17ms i.e. 2M/s or 4.4 GB/s
2500 xxhash32 in 824us i.e. 2.8M/s or 6.3 GB/s
2500 crc32 in 4.73ms i.e. 515.6K/s or 1 GB/s
2500 adler32 in 1.89ms i.e. 1.2M/s or 2.7 GB/s
2500 hash32 in 455us i.e. 5.2M/s or 11.4 GB/s
2500 md5 in 8.33ms i.e. 292.7K/s or 638 MB/s
2500 sha1 in 21.50ms i.e. 113.5K/s or 247.4 MB/s
2500 hmacsha1 in 23.95ms i.e. 101.9K/s or 222 MB/s
2500 sha256 in 31.27ms i.e. 78K/s or 170.1 MB/s
2500 hmacsha256 in 33.34ms i.e. 73.2K/s or 159.5 MB/s
2500 sha384 in 37.18ms i.e. 65.6K/s or 143.1 MB/s
2500 hmacsha384 in 43.66ms i.e. 55.9K/s or 121.8 MB/s
2500 sha512 in 37.06ms i.e. 65.8K/s or 143.5 MB/s
2500 hmacsha512 in 44.09ms i.e. 55.3K/s or 120.6 MB/s
2500 sha3_256 in 41.75ms i.e. 58.4K/s or 127.4 MB/s
2500 sha3_512 in 76.92ms i.e. 31.7K/s or 69.1 MB/s
2500 rc4 in 14.20ms i.e. 171.8K/s or 374.5 MB/s
2500 mormot aes-128-cfb in 4.75ms i.e. 513K/s or 1 GB/s
2500 mormot aes-128-ofb in 4.39ms i.e. 555.3K/s or 1.1 GB/s
2500 mormot aes-128-c64 in 6.32ms i.e. 385.9K/s or 841 MB/s
2500 mormot aes-128-ctr in 6.60ms i.e. 369.4K/s or 805 MB/s
2500 mormot aes-128-cfc in 4.71ms i.e. 518.3K/s or 1.1 GB/s
2500 mormot aes-128-ofc in 4.69ms i.e. 520.5K/s or 1.1 GB/s
2500 mormot aes-128-ctc in 6.23ms i.e. 391.8K/s or 853.8 MB/s
2500 mormot aes-128-gcm in 22.28ms i.e. 109.5K/s or 238.7 MB/s
2500 mormot aes-256-cfb in 6.22ms i.e. 392.1K/s or 854.7 MB/s
2500 mormot aes-256-ofb in 6.14ms i.e. 397.1K/s or 865.4 MB/s
2500 mormot aes-256-c64 in 8.07ms i.e. 302.4K/s or 659.2 MB/s
2500 mormot aes-256-ctr in 8.78ms i.e. 277.7K/s or 605.3 MB/s
2500 mormot aes-256-cfc in 6.51ms i.e. 374.5K/s or 816.1 MB/s
2500 mormot aes-256-ofc in 5.92ms i.e. 412K/s or 897.9 MB/s
2500 mormot aes-256-ctc in 7.01ms i.e. 348K/s or 758.5 MB/s
2500 mormot aes-256-gcm in 21.47ms i.e. 113.6K/s or 247.7 MB/s
2500 shake128 in 32.97ms i.e. 74K/s or 161.3 MB/s
2500 shake256 in 36.10ms i.e. 67.6K/s or 147.3 MB/s
Total failed: 0 / 556,730 - Core crypto PASSED 2.96s
1.5. Core ecc:
- Reference vectors: 23 assertions passed 23.69ms
- ECC: 303 assertions passed 532.02ms
50 Ecc256r1MakeKey in 98.12ms i.e. 509/s, aver. 1.96ms
50 Ecc256r1Sign in 99.79ms i.e. 501/s, aver. 1.99ms
50 Ecc256r1Verify in 119.25ms i.e. 419/s, aver. 2.38ms
98 Ecc256r1SharedSecret in 207.38ms i.e. 472/s, aver. 2.11ms
- Certificates and signatures: 91 assertions passed 87.25ms
- Ecc command line tool: 119 assertions passed 112.06ms
- ECDHE stream protocol: 63,393 assertions passed 1.90s
100 efAesCrc128 in 1.43ms i.e. 68.2K/s, aver. 14us, 1.2 GB/s
100 efAesCfb128 in 1.65ms i.e. 59K/s, aver. 16us, 1 GB/s
100 efAesOfb128 in 2.02ms i.e. 48.2K/s, aver. 20us, 910 MB/s
100 efAesCtr128 in 2.71ms i.e. 35.9K/s, aver. 27us, 679.6 MB/s
100 efAesCbc128 in 3.30ms i.e. 29.5K/s, aver. 33us, 557.5 MB/s
100 efAesCrc256 in 1.75ms i.e. 55.8K/s, aver. 17us, 1 GB/s
100 efAesCfb256 in 1.92ms i.e. 50.8K/s, aver. 19us, 0.9 GB/s
100 efAesOfb256 in 2.58ms i.e. 37.7K/s, aver. 25us, 713 MB/s
100 efAesCtr256 in 3.26ms i.e. 29.8K/s, aver. 32us, 564.2 MB/s
100 efAesCbc256 in 3.02ms i.e. 32.2K/s, aver. 30us, 609.1 MB/s
100 efAesGcm128 in 7.70ms i.e. 12.6K/s, aver. 77us, 239.3 MB/s
100 efAesGcm256 in 8.26ms i.e. 11.8K/s, aver. 82us, 223 MB/s
100 efAesCtc128 in 2.18ms i.e. 44.7K/s, aver. 21us, 845.7 MB/s
100 efAesCtc256 in 2.66ms i.e. 36.6K/s, aver. 26us, 692.1 MB/s
Total failed: 0 / 63,929 - Core ecc PASSED 2.67s
1.6. Network protocols:
- Rtsp over http: 1,900 assertions passed 1.27s
- Tunneling: no assertion 901us
Total failed: 0 / 1,900 - Network protocols PASSED 1.27s
2. ORM
2.1. Orm core:
- TOrm: 93 assertions passed 929us
- TOrmSigned: 200 assertions passed 3.37ms
- TOrmModel: 16 assertions passed 102us
- TRestServerFullMemory: 1,130,745 assertions passed 466.01ms
Total failed: 0 / 1,131,054 - Orm core PASSED 472.75ms
2.2. Sqlite file:
- Database direct access: 22,284 assertions passed 108.82ms
- Virtual table direct access: 12 assertions passed 582us
- TOrmTableJson: 144,083 assertions passed 54.51ms
- TRestClientDB: 608,198 assertions passed 1.10s
- Regexp function: 6,015 assertions passed 14.30ms
- TRecordVersion: 20,060 assertions passed 54.39ms
Total failed: 0 / 800,652 - Sqlite file PASSED 1.33s
2.3. Sqlite file WAL:
- Database direct access: 22,284 assertions passed 117.42ms
- Virtual table direct access: 12 assertions passed 597us
- TOrmTableJson: 144,083 assertions passed 54.62ms
- TRestClientDB: 608,198 assertions passed 1.11s
- Regexp function: 6,015 assertions passed 14.39ms
- TRecordVersion: 20,060 assertions passed 56.25ms
Total failed: 0 / 800,652 - Sqlite file WAL PASSED 1.36s
2.4. Sqlite file memory map:
- Database direct access: 22,264 assertions passed 91.47ms
- Virtual table direct access: 12 assertions passed 468us
- TOrmTableJson: 144,083 assertions passed 52ms
- TRestClientDB: 608,196 assertions passed 1.07s
- Regexp function: 6,015 assertions passed 15.64ms
- TRecordVersion: 20,060 assertions passed 54.84ms
Total failed: 0 / 800,630 - Sqlite file memory map PASSED 1.29s
2.5. Sqlite memory:
- Database direct access: 22,264 assertions passed 90.53ms
- Virtual table direct access: 12 assertions passed 582us
- TOrmTableJson: 144,083 assertions passed 53.34ms
- TRestClientDB: 676,505 assertions passed 1.72s
- Regexp function: 6,015 assertions passed 15.72ms
- TRecordVersion: 20,060 assertions passed 55.42ms
- TOrmTableWritable: 24,056 assertions passed 2.98ms
- RTree: 280,024 assertions passed 1.68s
10000 With RTree in 846.19ms i.e. 11.5K/s, aver. 84us
10000 With RTreeInteger in 832.71ms i.e. 11.7K/s, aver. 83us
- Shard write: 10,602 assertions passed 92.79ms
- Shard read: 140,001 assertions passed 231.38ms
- Shard read after purge: 114,003 assertions passed 185.85ms
- MaxShardCount: 144,002 assertions passed 167.90ms
Total failed: 0 / 1,581,627 - Sqlite memory PASSED 4.31s
2.6. External database:
- SynDBRemote: 42,707 assertions passed 228.59ms
- DB properties persistence: 7 assertions passed 263us
- External records: 2 assertions passed 168us
- Auto adapt SQL: 1,041 assertions passed 2.23ms
- Crypted database: 253,277 assertions passed 134.66ms
- External via REST: 170,355 assertions passed 675.09ms
- External via virtual table: 170,355 assertions passed 1.17s
- External via REST with change tracking: 180,455 assertions passed 1.29s
- JET database: 7,007 assertions passed 631.22ms
Total failed: 0 / 825,206 - External database PASSED 4.14s
2.7. Client server access:
- TRestHttpServer: 2 assertions passed 2.77ms
using HTTP API 1.0
- TRestHttpClient: 4 assertions passed 12.69ms
using TRestHttpClientWinHttp
- HTTP client keep alive: 4,088 assertions passed 134.67ms
4.7 KB, first 2.28ms, done 125.68ms i.e. 7956/s, aver. 125us, 36.5 MB/s
- HTTP client multi connect: 4,088 assertions passed 616.59ms
4.7 KB, first 354us, done 586.01ms i.e. 1706/s, aver. 586us, 7.8 MB/s
- HTTP client encrypted: 4,088 assertions passed 139.93ms
4.7 KB, first 671us, done 128.03ms i.e. 7810/s, aver. 128us, 35.9 MB/s
- Direct in process access: 4,057 assertions passed 23.15ms
4.7 KB, first 62us, done 20.38ms i.e. 49050/s, aver. 20us, 225.6 MB/s
- HTTP several DB servers: 12,607 assertions passed 434.77ms
4.7 KB, first 293us, done 124.61ms i.e. 8024/s, aver. 124us, 36.9 MB/s
4.7 KB, first 288us, done 124.19ms i.e. 8052/s, aver. 124us, 37 MB/s
4.7 KB, first 299us, done 127.90ms i.e. 7818/s, aver. 127us, 35.9 MB/s
Total failed: 0 / 28,934 - Client server access PASSED 1.37s
2.8. Multi thread process:
- Create thread pool: 1 assertion passed 1.70ms
- TRestServerDB: 7,302 assertions passed 57.62ms
1=61938/s 2=68174/s 5=64061/s 10=67613/s 30=61919/s 50=66452/s
- TRestClientDB: 7,302 assertions passed 82.08ms
1=47457/s 2=45109/s 5=43585/s 10=45899/s 30=45072/s 50=44208/s
- TCP sockets: 7,302 assertions passed 280.33ms
1=15536/s 2=15825/s 5=15987/s 10=15296/s 30=13628/s 50=12272/s
- Windows API: 7,302 assertions passed 446.64ms
1=8495/s 2=8638/s 5=8592/s 10=8578/s 30=7557/s 50=7221/s
- Websockets: 7,302 assertions passed 432.99ms
1=12190/s 2=11995/s 5=11897/s 10=10017/s 30=7378/s 50=5506/s
- Locked: 7,302 assertions passed 80.49ms
1=47885/s 2=43324/s 5=47820/s 10=46952/s 30=46310/s 50=44260/s
- Unlocked: 7,302 assertions passed 82.03ms
1=48034/s 2=39014/s 5=47615/s 10=47003/s 30=45854/s 50=44474/s
- Main thread: 7,302 assertions passed 93.17ms
1=42066/s 2=38087/s 5=36090/s 10=41861/s 30=40858/s 50=39331/s
- Background thread: 7,302 assertions passed 101.47ms
1=35528/s 2=37612/s 5=37243/s 10=37657/s 30=37283/s 50=36440/s
Total failed: 0 / 65,719 - Multi thread process PASSED 2.16s
3. SOA
3.1. Core script:
- Quick JS low level: 40,057 assertions passed 59.56ms
Total failed: 0 / 40,057 - Core script PASSED 60.08ms
3.2. Network protocols:
- Rtsp over http: 1,900 assertions passed 1.21s
- Tunneling: no assertion 590us
Total failed: 0 / 1,900 - Network protocols PASSED 1.21s
3.3. Service oriented architecture:
- Weak interfaces: 56 assertions passed 870us
- Service initialization: 268 assertions passed 6.95ms
- Direct call: 596,049 assertions passed 34.89ms
- Server side: 596,069 assertions passed 18.28ms
- Client side REST: 794,759 assertions passed 942.11ms
- Client side REST as json object: 794,753 assertions passed 959.80ms
- Client side REST sessions stats: 794,753 assertions passed 1.04s
- Client side REST locked: 794,757 assertions passed 948.44ms
- Client side REST main thread: 794,757 assertions passed 1.32s
- Client side REST background thread: 794,757 assertions passed 1.15s
- Client side REST sign with crc 32c: 794,753 assertions passed 933.57ms
- Client side REST sign with xxhash: 794,753 assertions passed 926.30ms
- Client side REST sign with md 5: 794,753 assertions passed 942.59ms
- Client side REST sign with sha 256: 794,753 assertions passed 991.41ms
- Client side REST sign with sha 512: 794,753 assertions passed 1.07s
- Client side REST weak authentication: 794,753 assertions passed 908.63ms
- Client side REST basic authentication: 794,753 assertions passed 1.06s
- Client side REST custom record layout: 794,753 assertions passed 964.81ms
- Client side REST service log to DB: 794,753 assertions passed 1.59s
- Client side json RPC: 794,753 assertions passed 980.57ms
- Test over HTTP: 10,482 assertions passed 278.83ms
- Security: 139 assertions passed 1.89ms
- Mocks and stubs: 30,032 assertions passed 31.98ms
Total failed: 0 / 13,949,161 - Service oriented architecture PASSED 17.13s
3.4. Bidirectional remote connection:
- Websockets protocols: 30,000 assertions passed 10.97ms
- Run http server: 2 assertions passed 2.38ms
- Soa callback on server side: 4,580 assertions passed 1.09ms
- Soa callback via json websockets: 6,898 assertions passed 298.32ms
- Soa callback via binary websockets: 6,898 assertions passed 299.04ms
- Relay start: 4 assertions passed 22.49ms
- Relay soa callback via json websockets: 6,899 assertions passed 487.29ms
- Relay connection recreate: 1 assertion passed 10.93ms
- Relay soa callback via binary websockets: 6,899 assertions passed 839.65ms
- Relay shutdown: 2 assertions passed 199.60ms
- TRecordVersion: 20,068 assertions passed 130.18ms
Total failed: 0 / 82,251 - Bidirectional remote connection PASSED 2.33s
Generated with: Delphi 2009 32 bit Win compiler
Time elapsed for all tests: 53.09s
Performed 2021-07-03 14:33:25 by User on XP3
Total assertions failed for all test suits: 0 / 41,341,328
! All tests passed successfully.
Done - Press ENTER to Exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment