Skip to content

Instantly share code, notes, and snippets.

@synopse
Created July 9, 2021 10:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save synopse/8ffdb40e089063a240f7c895b64ff61f to your computer and use it in GitHub Desktop.
Save synopse/8ffdb40e089063a240f7c895b64ff61f to your computer and use it in GitHub Desktop.
mORMot 2 tests cross-compiled from Debian x86_64 to Win32, running on Windows 7
100000 find UTF8String in 33.92ms i.e. 2.8M/s, aver. 0us
100000 random WideString in 19.16ms i.e. 4.9M/s, aver. 0us
100000 add WideString in 11.22ms i.e. 8.4M/s, aver. 0us
100000 getitem WideString in 13.25ms i.e. 7.1M/s, aver. 0us
100000 in WideString in 13.27ms i.e. 7.1M/s, aver. 0us
400000 IList<WideString> in 57.01ms i.e. 6.6M/s, aver. 0us
100000 sort WideString in 33.20ms i.e. 2.8M/s, aver. 0us
100000 find WideString in 38.93ms i.e. 2.4M/s, aver. 0us
100000 random UnicodeString in 16.20ms i.e. 5.8M/s, aver. 0us
100000 add UnicodeString in 1.62ms i.e. 58.5M/s, aver. 0us
100000 getitem UnicodeString in 1.27ms i.e. 74.6M/s, aver. 0us
100000 in UnicodeString in 1.08ms i.e. 87.8M/s, aver. 0us
400000 IList<UnicodeString> in 20.27ms i.e. 18.8M/s, aver. 0us
100000 sort UnicodeString in 28.10ms i.e. 3.3M/s, aver. 0us
100000 find UnicodeString in 35.50ms i.e. 2.6M/s, aver. 0us
100000 random Variant in 5.86ms i.e. 16.2M/s, aver. 0us
100000 add Variant in 2.39ms i.e. 39.8M/s, aver. 0us
100000 getitem Variant in 5.70ms i.e. 16.7M/s, aver. 0us
100000 in Variant in 5.64ms i.e. 16.9M/s, aver. 0us
400000 IList<Variant> in 19.68ms i.e. 19.3M/s, aver. 0us
100000 sort Variant in 97.58ms i.e. 0.9M/s, aver. 0us
Total failed: 0 / 6,410,042 - Core collections PASSED 1.02s
1.5. Core crypto:
- MD5: 166 assertions passed 7.35ms
- SHA1: 8 assertions passed 5.16ms
- SHA256: 15 assertions passed 22.94ms
- SHA512: 27 assertions passed 49.57ms
- SHA3: 8,225 assertions passed 42.72ms
- AES: 58,612 assertions passed 489.14ms
cypher with AES-NI: 92us, without: 824us
- AES_GCM: 215 assertions passed 558us
- RC4: 1,016 assertions passed 2.59ms
- Hashes: 9 assertions passed 61.72ms
- Base64: 12,064 assertions passed 29.61ms
- CompressShaAes: 1,683 assertions passed 3.03ms
- TAesPNRG: 131,313 assertions passed 43.54ms
100000 mORMot Random32 in 2.65ms i.e. 35.9M/s, aver. 0us, 143.9 MB/s
mORMot FillRandom in 134us, 711.6 MB/s
- CryptDataForCurrentUser: 5,000 assertions passed 53.17ms
2000 AES-CFB in 17.44ms i.e. 111.9K/s, aver. 8us, 59.7 MB/s
- CryptDataForCurrentUserApi: 5,000 assertions passed 328.81ms
2000 DPAPI in 325.45ms i.e. 6K/s, aver. 162us, 3.5 MB/s
- JWT: 162,728 assertions passed 605.63ms
1000 HS256 in 2ms i.e. 486.5K/s, aver. 2us
1000 HS384 in 3.19ms i.e. 305.7K/s, aver. 3us
1000 HS512 in 3.23ms i.e. 302K/s, aver. 3us
1000 S3224 in 1.54ms i.e. 633.7K/s, aver. 1us
1000 S3256 in 1.61ms i.e. 606.5K/s, aver. 1us
1000 S3384 in 1.59ms i.e. 610.7K/s, aver. 1us
1000 S3512 in 1.59ms i.e. 614.1K/s, aver. 1us
1000 S3S128 in 1.55ms i.e. 626.4K/s, aver. 1us
1000 S3S256 in 1.61ms i.e. 604.3K/s, aver. 1us
100 ES256 in 237.03ms i.e. 421/s, aver. 2.37ms
- TBinaryCookieGenerator: 82,944 assertions passed 8.09ms
16384 generate in 2.23ms i.e. 6.9M/s, aver. 0us
16384 validate in 1.58ms i.e. 9.8M/s, aver. 0us
- Catalog: 210 assertions passed 968us
- Benchmark: 90,000 assertions passed 582.82ms
2500 crc32c in 1.18ms i.e. 2M/s or 4.3 GB/s
2500 xxhash32 in 846us i.e. 2.8M/s or 6.1 GB/s
2500 crc32 in 455us i.e. 5.2M/s or 11.4 GB/s
2500 adler32 in 260us i.e. 9.1M/s or 19.9 GB/s
2500 hash32 in 441us i.e. 5.4M/s or 11.7 GB/s
2500 aesnihash in 290us i.e. 8.2M/s or 17.9 GB/s
2500 md5 in 8.36ms i.e. 292K/s or 636.3 MB/s
2500 sha1 in 17.65ms i.e. 138.3K/s or 301.4 MB/s
2500 hmacsha1 in 19.44ms i.e. 125.5K/s or 273.6 MB/s
2500 sha256 in 30.75ms i.e. 79.3K/s or 173 MB/s
2500 hmacsha256 in 32.11ms i.e. 76K/s or 165.6 MB/s
2500 sha384 in 37.19ms i.e. 65.6K/s or 143 MB/s
2500 hmacsha384 in 43.87ms i.e. 55.6K/s or 121.2 MB/s
2500 sha512 in 37.16ms i.e. 65.6K/s or 143.1 MB/s
2500 hmacsha512 in 44.03ms i.e. 55.4K/s or 120.8 MB/s
2500 sha3_256 in 37.88ms i.e. 64.4K/s or 140.4 MB/s
2500 sha3_512 in 68.54ms i.e. 35.6K/s or 77.6 MB/s
2500 rc4 in 18.68ms i.e. 130.6K/s or 284.7 MB/s
2500 mormot aes-128-cfb in 4.75ms i.e. 513.6K/s or 1 GB/s
2500 mormot aes-128-ofb in 4.60ms i.e. 530.6K/s or 1.1 GB/s
2500 mormot aes-128-c64 in 6.15ms i.e. 396.6K/s or 864.4 MB/s
2500 mormot aes-128-ctr in 6.29ms i.e. 387.8K/s or 845.2 MB/s
2500 mormot aes-128-cfc in 4.94ms i.e. 493.9K/s or 1 GB/s
2500 mormot aes-128-ofc in 4.90ms i.e. 497.8K/s or 1 GB/s
2500 mormot aes-128-ctc in 6.37ms i.e. 382.7K/s or 834 MB/s
2500 mormot aes-128-gcm in 10.38ms i.e. 235.1K/s or 512.3 MB/s
2500 mormot aes-256-cfb in 6.29ms i.e. 388K/s or 845.7 MB/s
2500 mormot aes-256-ofb in 6.17ms i.e. 395.1K/s or 861 MB/s
2500 mormot aes-256-c64 in 7.74ms i.e. 315.1K/s or 686.7 MB/s
2500 mormot aes-256-ctr in 7.87ms i.e. 310.1K/s or 675.9 MB/s
2500 mormot aes-256-cfc in 6.61ms i.e. 368.9K/s or 803.9 MB/s
2500 mormot aes-256-ofc in 6.55ms i.e. 372.2K/s or 811.1 MB/s
2500 mormot aes-256-ctc in 8.36ms i.e. 291.7K/s or 635.8 MB/s
2500 mormot aes-256-gcm in 12.72ms i.e. 191.8K/s or 418.1 MB/s
2500 shake128 in 31.83ms i.e. 76.6K/s or 167.1 MB/s
2500 shake256 in 39.16ms i.e. 62.3K/s or 135.8 MB/s
Total failed: 0 / 559,235 - Core crypto PASSED 2.46s
1.6. Core ecc:
- Reference vectors: 23 assertions passed 22.99ms
- ECC: 303 assertions passed 516.83ms
50 Ecc256r1MakeKey in 96.80ms i.e. 516/s, aver. 1.93ms
50 Ecc256r1Sign in 96.01ms i.e. 520/s, aver. 1.92ms
50 Ecc256r1Verify in 115.66ms i.e. 432/s, aver. 2.31ms
98 Ecc256r1SharedSecret in 199.86ms i.e. 490/s, aver. 2.03ms
- Certificates and signatures: 91 assertions passed 93.98ms
- Ecc command line tool: 119 assertions passed 130.66ms
- ECDHE stream protocol: 63,393 assertions passed 1.78s
100 efAesCrc128 in 1.48ms i.e. 65.5K/s, aver. 14us, 1.2 GB/s
100 efAesCfb128 in 1.59ms i.e. 61.2K/s, aver. 15us, 1.1 GB/s
100 efAesOfb128 in 2.17ms i.e. 44.8K/s, aver. 21us, 846.9 MB/s
100 efAesCtr128 in 2.74ms i.e. 35.6K/s, aver. 27us, 672.1 MB/s
100 efAesCbc128 in 3.62ms i.e. 26.9K/s, aver. 36us, 509.2 MB/s
100 efAesCrc256 in 1.87ms i.e. 52K/s, aver. 18us, 0.9 GB/s
100 efAesCfb256 in 1.97ms i.e. 49.5K/s, aver. 19us, 0.9 GB/s
100 efAesOfb256 in 2.68ms i.e. 36.3K/s, aver. 26us, 686.7 MB/s
100 efAesCtr256 in 3.33ms i.e. 29.2K/s, aver. 33us, 553 MB/s
100 efAesCbc256 in 3.93ms i.e. 24.8K/s, aver. 39us, 468.8 MB/s
100 efAesGcm128 in 3.74ms i.e. 26.1K/s, aver. 37us, 492.8 MB/s
100 efAesGcm256 in 4.23ms i.e. 23K/s, aver. 42us, 435.3 MB/s
100 efAesCtc128 in 2.75ms i.e. 35.4K/s, aver. 27us, 669.9 MB/s
100 efAesCtc256 in 2.96ms i.e. 32.9K/s, aver. 29us, 621.2 MB/s
Total failed: 0 / 63,929 - Core ecc PASSED 2.56s
1.7. Network protocols:
- Rtsp over http: 1,900 assertions passed 1.57s
- Tunneling: no assertion 3.42ms
Total failed: 0 / 1,900 - Network protocols PASSED 1.58s
2. ORM
2.1. Orm core:
- TOrm: 93 assertions passed 2.60ms
- TOrmSigned: 200 assertions passed 4.27ms
- TOrmModel: 16 assertions passed 664us
- TRestServerFullMemory: 1,130,745 assertions passed 577.54ms
Total failed: 0 / 1,131,054 - Orm core PASSED 592.19ms
2.2. Sqlite file:
- Database direct access: 22,284 assertions passed 69.25ms
- Virtual table direct access: 12 assertions passed 1.49ms
- TOrmTableJson: 144,083 assertions passed 68.83ms
- TRestClientDB: 608,198 assertions passed 736.38ms
- Regexp function: 6,015 assertions passed 20.97ms
- TRecordVersion: 20,060 assertions passed 58.90ms
Total failed: 0 / 800,652 - Sqlite file PASSED 965.40ms
2.3. Sqlite file WAL:
- Database direct access: 22,284 assertions passed 67.24ms
- Virtual table direct access: 12 assertions passed 2.36ms
- TOrmTableJson: 144,083 assertions passed 68.38ms
- TRestClientDB: 608,198 assertions passed 768.73ms
- Regexp function: 6,015 assertions passed 14.55ms
- TRecordVersion: 20,060 assertions passed 57.20ms
Total failed: 0 / 800,652 - Sqlite file WAL PASSED 989.46ms
2.4. Sqlite file memory map:
- Database direct access: 22,264 assertions passed 54.35ms
- Virtual table direct access: 12 assertions passed 1.52ms
- TOrmTableJson: 144,083 assertions passed 66.39ms
- TRestClientDB: 608,196 assertions passed 733.34ms
- Regexp function: 6,015 assertions passed 23.30ms
- TRecordVersion: 20,060 assertions passed 55.30ms
Total failed: 0 / 800,630 - Sqlite file memory map PASSED 944.03ms
2.5. Sqlite memory:
- Database direct access: 22,264 assertions passed 54.24ms
- Virtual table direct access: 12 assertions passed 1.15ms
- TOrmTableJson: 144,083 assertions passed 67.72ms
- TRestClientDB: 676,505 assertions passed 1.14s
- Regexp function: 6,015 assertions passed 22.79ms
- TRecordVersion: 20,060 assertions passed 56.73ms
- TOrmTableWritable: 24,056 assertions passed 3.96ms
- RTree: 280,024 assertions passed 951.25ms
10000 With RTree in 466.70ms i.e. 20.9K/s, aver. 46us
10000 With RTreeInteger in 480.70ms i.e. 20.3K/s, aver. 48us
- Shard write: 10,602 assertions passed 110.35ms
- Shard read: 140,001 assertions passed 159.24ms
- Shard read after purge: 114,003 assertions passed 127.39ms
- MaxShardCount: 144,002 assertions passed 136.90ms
Total failed: 0 / 1,581,627 - Sqlite memory PASSED 2.85s
2.6. External database:
- SynDBRemote: 42,707 assertions passed 450.29ms
- DB properties persistence: 7 assertions passed 2.06ms
- External records: 2 assertions passed 1.51ms
- Auto adapt SQL: 1,041 assertions passed 4.51ms
- Crypted database: 253,277 assertions passed 106.13ms
- External via REST: 170,355 assertions passed 532.84ms
- External via virtual table: 170,355 assertions passed 875.97ms
- External via REST with change tracking: 180,455 assertions passed 1.16s
- JET database: 7,007 assertions passed 1.24s
Total failed: 0 / 825,206 - External database PASSED 4.40s
2.7. Client server access:
- TRestHttpServer: 2 assertions passed 3.91ms
using HTTP API 2.0
- TRestHttpClient: 4 assertions passed 31.56ms
using TRestHttpClientWinHttp
- HTTP client keep alive: 4,088 assertions passed 310.92ms
4.7 KB, first 3.06ms, done 284.80ms i.e. 3511/s, aver. 284us, 16.1 MB/s
- HTTP client multi connect: 4,088 assertions passed 548.93ms
4.7 KB, first 810us, done 519.61ms i.e. 1924/s, aver. 519us, 8.8 MB/s
- HTTP client encrypted: 4,088 assertions passed 358.98ms
4.7 KB, first 666us, done 342.11ms i.e. 2922/s, aver. 342us, 13.4 MB/s
- Direct in process access: 4,057 assertions passed 24.05ms
4.7 KB, first 48us, done 21.33ms i.e. 46877/s, aver. 21us, 215.6 MB/s
- HTTP several DB servers: 12,607 assertions passed 1.07s
4.7 KB, first 515us, done 296.22ms i.e. 3375/s, aver. 296us, 15.5 MB/s
4.7 KB, first 483us, done 313.57ms i.e. 3189/s, aver. 313us, 14.6 MB/s
4.7 KB, first 418us, done 303.76ms i.e. 3291/s, aver. 303us, 15.1 MB/s
Total failed: 0 / 28,934 - Client server access PASSED 2.37s
2.8. Multi thread process:
- Create thread pool: 1 assertion passed 2.74ms
- TRestServerDB: 7,302 assertions passed 144.30ms
1=22080/s 2=28572/s 5=24777/s 10=23666/s 30=27642/s 50=29472/s
- TRestClientDB: 7,302 assertions passed 1.39s
1=18151/s 2=28676/s 5=9587/s 10=4430/s 30=1330/s 50=874/s
- TCP sockets: 7,302 assertions passed 1.20s
1=6916/s 2=8084/s 5=6907/s 10=3935/s 30=1682/s 50=1765/s
- Windows API: 7,302 assertions passed 1.33s
1=2825/s 2=3913/s 5=3570/s 10=3695/s 30=1695/s 50=2426/s
- Websockets: 7,302 assertions passed 864.23ms
1=4896/s 2=7700/s 5=4279/s 10=4795/s 30=4256/s 50=3155/s
- Locked: 7,302 assertions passed 1.51s
1=6457/s 2=11616/s 5=9462/s 10=4173/s 30=1432/s 50=819/s
- Unlocked: 7,302 assertions passed 191.12ms
1=12674/s 2=26887/s 5=20290/s 10=19927/s 30=24814/s 50=19176/s
- Main thread: 7,302 assertions passed 238.41ms
1=10238/s 2=12929/s 5=19115/s 10=19309/s 30=19764/s 50=19516/s
- Background thread: 7,301 assertions passed 858.68ms
1=8606/s 2=21154/s 5=15357/s 10=10074/s 30=5476/s 50=1108/s
Total failed: 0 / 65,718 - Multi thread process PASSED 8.55s
3. SOA
3.1. Core script:
- Quick JS low level: 40,057 assertions passed 89.92ms
Total failed: 0 / 40,057 - Core script PASSED 91.52ms
3.2. Network protocols:
- Rtsp over http: 1,900 assertions passed 1.56s
- Tunneling: no assertion 4.69ms
Total failed: 0 / 1,900 - Network protocols PASSED 1.57s
3.3. Service oriented architecture:
- Weak interfaces: 56 assertions passed 2.73ms
- Service initialization: 268 assertions passed 13.84ms
- Direct call: 606,564 assertions passed 28.13ms
- Server side: 606,584 assertions passed 20.14ms
- Client side REST: 808,779 assertions passed 527.36ms
- Client side REST as json object: 808,773 assertions passed 550.41ms
- Client side REST sessions stats: 808,773 assertions passed 569.86ms
- Client side REST locked: 808,777 assertions passed 1.03s
- Client side REST main thread: 808,777 assertions passed 6.70s
- Client side REST background thread: 808,777 assertions passed 5.98s
- Client side REST sign with crc 32c: 808,773 assertions passed 520.32ms
- Client side REST sign with xxhash: 808,773 assertions passed 522.52ms
- Client side REST sign with md 5: 808,773 assertions passed 539.26ms
- Client side REST sign with sha 256: 808,773 assertions passed 580.69ms
- Client side REST sign with sha 512: 808,773 assertions passed 660.77ms
- Client side REST weak authentication: 808,773 assertions passed 501.60ms
- Client side REST basic authentication: 808,773 assertions passed 670.23ms
- Client side REST custom record layout: 808,773 assertions passed 562.47ms
- Client side REST service log to DB: 808,773 assertions passed 961.17ms
- Client side json RPC: 808,773 assertions passed 574.46ms
- Test over HTTP: 10,987 assertions passed 860.19ms
- Security: 139 assertions passed 4.22ms
- Mocks and stubs: 30,030 assertions passed 36.51ms
Total failed: 0 / 14,195,014 - Service oriented architecture PASSED 22.48s
3.4. Bidirectional remote connection:
- Websockets protocols: 30,000 assertions passed 19.85ms
- Run http server: 2 assertions passed 10.46ms
- Soa callback on server side: 4,580 assertions passed 2.20ms
- Soa callback via json websockets: 6,898 assertions passed 419.96ms
- Soa callback via binary websockets: 6,898 assertions passed 621.45ms
- Relay start: 4 assertions passed 142.43ms
- Relay soa callback via json websockets: 6,899 assertions passed 15s
- Relay connection recreate: 1 assertion passed 35.79ms
- Relay soa callback via binary websockets: 6,899 assertions passed 21.32s
- Relay shutdown: 2 assertions passed 311.87ms
- TRecordVersion: 20,068 assertions passed 167.12ms
Total failed: 0 / 82,251 - Bidirectional remote connection PASSED 38.12s
Generated with: Free Pascal 3.2 32 bit Win compiler
Time elapsed for all tests: 1m39
Performed 2021-07-09 12:00:17 by user1 on WIN7DEV
Total assertions failed for all test suits: 0 / 48,083,349
! 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