Skip to content

Instantly share code, notes, and snippets.

@synopse
Created March 31, 2019 17:27
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/684c8e8ff094e5b91edc2e0919c76f6a to your computer and use it in GitHub Desktop.
Save synopse/684c8e8ff094e5b91edc2e0919c76f6a to your computer and use it in GitHub Desktop.
mORMot 1.18.5148 on Win32 with Delphi 10.3 Rio
1.2. Low level types:
- RTTI: 443 assertions passed 632us
- Url encoding: 200 assertions passed 582us
- Encode decode JSON: 414,911 assertions passed 134.44ms
- Variants: 66 assertions passed 709us
- Mustache renderer: 147 assertions passed 4.33ms
- TDocVariant: 71,777 assertions passed 126.96ms
- TDecimal128: 17,446 assertions passed 2.17ms
- BSON: 245,070 assertions passed 7.10ms
100000 TBSONObjectID.ComputeNew in 5.88ms i.e. 17,003,910/s, aver. 0us
- TSynTableStatement: 221 assertions passed 644us
- TSynMonitorUsage: 1,202 assertions passed 203us
Total failed: 0 / 751,483 - Low level types PASSED 282.35ms
1.3. Big table:
- TSynBigTable: 19,165 assertions passed 82.90ms
- TSynBigTableString: 16,224 assertions passed 38.48ms
- TSynBigTableMetaData: 475,563 assertions passed 981.81ms
- TSynBigTableRecord: 375,563 assertions passed 1.49s
Total failed: 0 / 886,515 - Big table PASSED 2.59s
1.4. Synopse PDF:
- TPdfDocument: 4 assertions passed 18.66ms
- TPdfDocumentGDI: 8 assertions passed 106.46ms
Total failed: 0 / 12 - Synopse PDF PASSED 126.09ms
1.5. Cryptographic routines:
- Adler32: 1 assertion passed 511us
- MD5: 167 assertions passed 300us
- SHA1: 17 assertions passed 9.68ms
- SHA256: 20 assertions passed 28ms
- SHA512: 27 assertions passed 45.32ms
- SHA3: 8,225 assertions passed 42.30ms
- AES256: 22,762 assertions passed 326.33ms
cypher 1..450 bytes with AES-NI: 289us, without: 1.19ms
- RC4: 1,011 assertions passed 2.40ms
- Base64: 13,992 assertions passed 153.94ms
- CompressShaAes: 1,683 assertions passed 4.01ms
- TAESPNRG: 27,303 assertions passed 59.33ms
- CryptDataForCurrentUser: 5,000 assertions passed 15.45ms
2000 AES-CFB in 8.57ms i.e. 233,317/s, aver. 4us, 121.6 MB/s
- CryptDataForCurrentUserAPI: 5,000 assertions passed 533.03ms
2000 DPAPI in 531.68ms i.e. 3,761/s, aver. 265us, 2.1 MB/s
- JWT: 162,740 assertions passed 882.09ms
1000 HS256 in 2.58ms i.e. 386,847/s, aver. 2us
1000 HS384 in 3.09ms i.e. 323,624/s, aver. 3us
1000 HS512 in 3.17ms i.e. 314,564/s, aver. 3us
1000 S3224 in 1.58ms i.e. 629,722/s, aver. 1us
1000 S3256 in 1.53ms i.e. 649,772/s, aver. 1us
1000 S3384 in 1.62ms i.e. 613,873/s, aver. 1us
1000 S3512 in 1.58ms i.e. 629,326/s, aver. 1us
1000 S3S128 in 1.55ms i.e. 642,260/s, aver. 1us
1000 S3S256 in 1.68ms i.e. 594,530/s, aver. 1us
100 ES256 in 307.76ms i.e. 324/s, aver. 3.07ms
- Benchmark: 62,500 assertions passed 896.84ms
2500 crc32c in 1.48ms i.e. 1684636/s or 3.5 GB/s
2500 xxhash32 in 1.02ms i.e. 2436647/s or 5 GB/s
2500 hash32 in 594us i.e. 4208754/s or 8.7 GB/s
2500 md5 in 10.20ms i.e. 244905/s or 521.2 MB/s
2500 sha1 in 30.61ms i.e. 81667/s or 173.8 MB/s
2500 hmacsha1 in 33.48ms i.e. 74662/s or 158.9 MB/s
2500 sha256 in 45.34ms i.e. 55134/s or 117.3 MB/s
2500 hmacsha256 in 47.01ms i.e. 53175/s or 113.1 MB/s
2500 sha384 in 35.31ms i.e. 70797/s or 150.6 MB/s
2500 hmacsha384 in 41.69ms i.e. 59960/s or 127.6 MB/s
2500 sha512 in 36.28ms i.e. 68897/s or 146.6 MB/s
2500 hmacsha512 in 47.97ms i.e. 52110/s or 110.9 MB/s
2500 sha3_256 in 54.04ms i.e. 46255/s or 98.4 MB/s
2500 sha3_512 in 212.38ms i.e. 11770/s or 25 MB/s
2500 rc4 in 32.68ms i.e. 76487/s or 162.7 MB/s
2500 aes128cfb in 17.34ms i.e. 144117/s or 306.7 MB/s
2500 aes128ofb in 32.09ms i.e. 77896/s or 165.7 MB/s
2500 aes128cfbcrc in 22.36ms i.e. 111786/s or 237.9 MB/s
2500 aes128ofbcrc in 17.29ms i.e. 144558/s or 307.6 MB/s
2500 aes256cfb in 15.94ms i.e. 156788/s or 333.6 MB/s
2500 aes256ofb in 15.95ms i.e. 156720/s or 333.5 MB/s
2500 aes256cfbcrc in 22.41ms i.e. 111557/s or 237.4 MB/s
2500 aes256ofbcrc in 36.28ms i.e. 68900/s or 146.6 MB/s
2500 shake128 in 42.63ms i.e. 58637/s or 124.7 MB/s
2500 shake256 in 43.79ms i.e. 57081/s or 121.4 MB/s
Total failed: 0 / 310,448 - Cryptographic routines PASSED 3.01s
1.6. ECC cryptography:
- Reference vectors: 23 assertions passed 27.60ms
- ecc_make_key: 50 assertions passed 148.35ms
- ecdsa_sign: 50 assertions passed 157.36ms
- ecdsa_verify: 50 assertions passed 188.55ms
- ecdh_shared_secret: 147 assertions passed 277.88ms
- Certificates and signatures: 91 assertions passed 135.87ms
- ECC command line tool: 118 assertions passed 226.84ms
- ECDHE stream protocol: 521,295 assertions passed 579.04ms
Total failed: 0 / 521,824 - ECC cryptography PASSED 1.74s
1.7. Compression:
- In memory compression: 12 assertions passed 517.78ms
- GZIP format: 29 assertions passed 1.20s
- ZIP format: 76 assertions passed 3.91s
- SynLZO: 3,006 assertions passed 115.14ms
- SynLZ: 23,208 assertions passed 169.98ms
- TAlgoCompress: 914 assertions passed 276.96ms
TAlgoSynLZ 169.2 KB->78.9 KB: comp 202:94MB/s decomp 251:540MB/s
TAlgoLizard 169.1 KB->65.8 KB: comp 3:1MB/s decomp 15:40MB/s
TAlgoLizardFast 169.1 KB->116.1 KB: comp 18:13MB/s decomp 39:56MB/s
TAlgoLizardHuffman 169.1 KB->82 KB: comp 1:0MB/s decomp 22:45MB/s
TAlgoDeflate 169.4 KB->38.1 KB: comp 11:2MB/s decomp 30:134MB/s
TAlgoDeflateFast 169.4 KB->46.9 KB: comp 39:10MB/s decomp 36:130MB/s
Total failed: 0 / 27,245 - Compression PASSED 6.20s
1.8. Protocols:
- RTSP over HTTP: 1,900 assertions passed 408.40ms
Total failed: 0 / 1,900 - Protocols PASSED 410.77ms
2. mORMot
2.1. File based:
- Database direct access: 22,278 assertions passed 164.36ms
- Virtual table direct access: 12 assertions passed 1.88ms
- TSQLTableJSON: 149,089 assertions passed 94.66ms
- TSQLRestClientDB: 615,201 assertions passed 4.29s
- Regexp function: 6,016 assertions passed 30.20ms
- TRecordVersion: 20,060 assertions passed 111.12ms
Total failed: 0 / 812,656 - File based PASSED 4.70s
2.2. File based memory map:
- Database direct access: 22,258 assertions passed 122.37ms
- Virtual table direct access: 12 assertions passed 1.81ms
- TSQLTableJSON: 149,089 assertions passed 95.84ms
- TSQLRestClientDB: 615,199 assertions passed 6.66s
- Regexp function: 6,016 assertions passed 52.53ms
- TRecordVersion: 20,060 assertions passed 134.44ms
Total failed: 0 / 812,634 - File based memory map PASSED 7.08s
2.3. File based WAL:
- Database direct access: 22,278 assertions passed 157.32ms
- Virtual table direct access: 12 assertions passed 1.60ms
- TSQLTableJSON: 149,089 assertions passed 91.64ms
- TSQLRestClientDB: 615,201 assertions passed 4.55s
- Regexp function: 6,016 assertions passed 22.59ms
- TRecordVersion: 20,060 assertions passed 108.93ms
Total failed: 0 / 812,656 - File based WAL PASSED 4.94s
2.4. Memory based:
- Database direct access: 22,258 assertions passed 121.06ms
- Virtual table direct access: 12 assertions passed 1.45ms
- TSQLTableJSON: 149,089 assertions passed 139.48ms
- TSQLRestClientDB: 683,507 assertions passed 5.79s
- Regexp function: 6,016 assertions passed 36.01ms
- TRecordVersion: 20,060 assertions passed 121.27ms
- TSQLTableWritable: 24,056 assertions passed 4.04ms
- RTree: 280,024 assertions passed 1.91s
10000 With RTree in 1.03s i.e. 9,664/s, aver. 103us
10000 With RTreeInteger in 872.12ms i.e. 11,466/s, aver. 87us
- Shard write: 10,602 assertions passed 210.63ms
- Shard read: 140,001 assertions passed 273.65ms
- Shard read after purge: 114,003 assertions passed 240.88ms
- MaxShardCount: 144,002 assertions passed 296.33ms
Total failed: 0 / 1,593,630 - Memory based PASSED 9.16s
2.5. Basic classes:
- TSQLRecord: 88 assertions passed 558us
- TSQLRecordSigned: 200 assertions passed 3.69ms
- TSQLModel: 16 assertions passed 132us
- TSQLRestServerFullMemory: 1,222,461 assertions passed 1.15s
Total failed: 0 / 1,222,765 - Basic classes PASSED 1.16s
2.6. Client server access:
- TSQLHttpServer: 2 assertions passed 5.83ms
using HTTP API 2.0
- TSQLHttpClient: 4 assertions passed 50.13ms
using TSQLHttpClientWinHTTP
- HTTP client keep alive: 4,087 assertions passed 383.31ms
4.7 KB, first 15.01ms, done 344.48ms i.e. 2902/s, aver. 344us, 13.5 MB/s
- HTTP client multi connect: 4,087 assertions passed 753.71ms
4.7 KB, first 9.29ms, done 710.91ms i.e. 1406/s, aver. 710us, 6.5 MB/s
- HTTP client encrypted: 4,087 assertions passed 388.59ms
4.7 KB, first 8.96ms, done 354.04ms i.e. 2824/s, aver. 354us, 13.2 MB/s
- HTTP client custom encryption aes sha: 4,087 assertions passed 395.50ms
4.7 KB, first 478us, done 377.29ms i.e. 2650/s, aver. 377us, 12.3 MB/s
- HTTP client custom encryption aes: 4,087 assertions passed 405.53ms
4.7 KB, first 470us, done 384.06ms i.e. 2603/s, aver. 384us, 12.1 MB/s
- HTTP client custom encryption sha: 4,087 assertions passed 367.54ms
4.7 KB, first 384us, done 348.29ms i.e. 2871/s, aver. 348us, 13.4 MB/s
- Named pipe access: 4,089 assertions passed 633.76ms
4.7 KB, first 248.02ms, done 154.50ms i.e. 6472/s, aver. 154us, 30.2 MB/s
- Local window messages: 4,088 assertions passed 65.99ms
4.7 KB, first 420us, done 34.65ms i.e. 28860/s, aver. 34us, 134.9 MB/s
- Direct in process access: 4,056 assertions passed 27.75ms
4.7 KB, first 25us, done 17.96ms i.e. 55673/s, aver. 17us, 260.3 MB/s
- HTTP several DB servers: 12,604 assertions passed 1.28s
4.7 KB, first 630us, done 343.21ms i.e. 2913/s, aver. 343us, 13.6 MB/s
4.7 KB, first 543us, done 358.73ms i.e. 2787/s, aver. 358us, 13 MB/s
4.7 KB, first 539us, done 381.26ms i.e. 2622/s, aver. 381us, 12.2 MB/s
Total failed: 0 / 49,365 - Client server access PASSED 4.78s
2.7. Service oriented architecture:
- Weak interfaces: 56 assertions passed 800us
- Service initialization: 267 assertions passed 3.18ms
- Direct call: 606,564 assertions passed 27.98ms
- Server side: 606,584 assertions passed 29.14ms
- Client side REST: 808,779 assertions passed 1.05s
- Client side REST as JSON object: 808,773 assertions passed 884.48ms
- Client side REST sessions stats: 808,773 assertions passed 1.01s
- Client side REST locked: 808,777 assertions passed 914.85ms
- Client side REST main thread: 808,777 assertions passed 3.20s
- Client side REST background thread: 808,777 assertions passed 2.93s
- Client side REST sign with crc 32c: 808,773 assertions passed 870.62ms
- Client side REST sign with xxhash: 808,773 assertions passed 901.58ms
- Client side REST sign with md 5: 808,773 assertions passed 899.69ms
- Client side REST sign with sha 256: 808,773 assertions passed 976.56ms
- Client side REST sign with sha 512: 808,773 assertions passed 1.11s
- Client side REST weak authentication: 808,773 assertions passed 841.95ms
- Client side REST basic authentication: 808,773 assertions passed 1.07s
- Client side REST custom record layout: 808,773 assertions passed 897.13ms
- Client side REST service log to DB: 808,773 assertions passed 2.43s
- Client side JSONRPC: 808,773 assertions passed 921.39ms
- Test over HTTP: 10,987 assertions passed 881.65ms
- Security: 139 assertions passed 1.80ms
- Mocks and stubs: 30,032 assertions passed 44.22ms
Total failed: 0 / 14,195,015 - Service oriented architecture PASSED 21.93s
2.8. Bidirectional remote connection:
- Websockets JSON protocol: 60 assertions passed 741us
- Websockets binary protocol: 240 assertions passed 208us
- Run http server: 2 assertions passed 901us
- SOA callback on server side: 4,580 assertions passed 5.70ms
- SOA callback via JSON websockets: 4,583 assertions passed 174.25ms
- SOA callback via binary websockets: 4,583 assertions passed 230.18ms
- TRecordVersion: 20,068 assertions passed 132.64ms
Total failed: 0 / 34,116 - Bidirectional remote connection PASSED 549.01ms
2.9. External database:
- TQuery: 2,003 assertions passed 26.20ms
- SynDBRemote: 42,707 assertions passed 531.69ms
- DB properties persistence: 7 assertions passed 824us
- External records: 2 assertions passed 243us
- Auto adapt SQL: 942 assertions passed 6.78ms
- Crypted database: 253,277 assertions passed 174.81ms
- External via REST: 170,355 assertions passed 891.79ms
- External via virtual table: 170,355 assertions passed 4.73s
- External via REST with change tracking: 180,455 assertions passed 2.83s
- JET database: 7,007 assertions passed 1.31s
Total failed: 0 / 827,110 - External database PASSED 10.53s
2.10. Multi thread process:
- Create thread pool: 1 assertion passed 13.44ms
- TSQLRestServerDB: 4,822 assertions passed 1.04s
1=9954/s 2=19484/s 5=7946/s 10=3958/s 30=1311/s 50=785/s
- TSQLRestClientDB: 4,822 assertions passed 1.10s
1=4757/s 2=13237/s 5=7824/s 10=3901/s 30=1314/s 50=781/s
- TSQLRestClientURINamedPipe: 2,412 assertions passed 1.64s
1=1199/s 2=1162/s 5=538/s
- TSQLRestClientURIMessage: 3,222 assertions passed 424.18ms
1=5593/s 2=4963/s 5=4061/s 10=2573/s
- Windows API: 4,822 assertions passed 1.43s
1=1934/s 2=3071/s 5=3406/s 10=3160/s 30=1264/s 50=767/s
- Socket API: 4,822 assertions passed 1.31s
1=4762/s 2=5662/s 5=6821/s 10=3829/s 30=1261/s 50=761/s
- Websockets: 4,822 assertions passed 1.33s
1=3536/s 2=5005/s 5=5403/s 10=3831/s 30=1280/s 50=769/s
- Locked: 4,822 assertions passed 1.07s
1=6452/s 2=18602/s 5=7872/s 10=3946/s 30=1300/s 50=785/s
- Unlocked: 4,822 assertions passed 1.11s
1=7064/s 2=18449/s 5=7913/s 10=3937/s 30=1263/s 50=730/s
- Main thread: 4,822 assertions passed 1.33s
1=7792/s 2=5536/s 5=4141/s 10=2695/s 30=1087/s 50=676/s
- Background thread: 4,822 assertions passed 1.05s
1=11186/s 2=12943/s 5=7758/s 10=3917/s 30=1301/s 50=771/s
Total failed: 0 / 49,033 - Multi thread process PASSED 12.89s
2.11. DDD shared units:
- User model: 3,276 assertions passed 467us
- Authentication model: 20,006 assertions passed 92.21ms
- Email validation process: 55 assertions passed 37.56ms
- User CQRS repository: 57,106 assertions passed 478.35ms
Total failed: 0 / 80,443 - DDD shared units PASSED 610.21ms
2.12. DDD multi thread:
- Delete old database: 1 assertion passed 669us
- Start server: 1 assertion passed 29.90ms
- Single client test: 1,002 assertions passed 352.24ms
- Multi threaded clients test: 21 assertions passed 392.98ms
Total failed: 0 / 1,025 - DDD multi thread PASSED 776.45ms
Windows 10 64bit (10.0.17134) (cp1252)
4 x Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz (x86)
Using mORMot 1.18.5148
TSQLite3LibraryStatic 3.27.2 with internal MM
Generated with: Delphi 10.3 Rio 32 bit compiler
Time elapsed for all tests: 1m38
Performed 2019-03-31 19:25:51 by User on ACER
Total assertions failed for all test suits: 0 / 41,836,003
! 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