Skip to content

Instantly share code, notes, and snippets.

@synopse
Created October 10, 2018 13:24
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/dccddcff42ada480f1da13abf1376bc7 to your computer and use it in GitHub Desktop.
Save synopse/dccddcff42ada480f1da13abf1376bc7 to your computer and use it in GitHub Desktop.
mORMot Windows XP
Synopse mORMot Framework Automated tests
------------------------------------------
1. Synopse libraries
1.1. Low level common:
- System copy record: 82 assertions passed 3us
- TRawUTF8List: 130,009 assertions passed 375.15ms
- TDynArray: 1,089,783 assertions passed 575.18ms
- TDynArrayHashed: 1,200,629 assertions passed 355.41ms
- TObjectListHashed: 999,866 assertions passed 1.05s
- TObjectListSorted: 79,912 assertions passed 372.01ms
- TSynNameValue: 40,032 assertions passed 27.67ms
- TRawUTF8Interning: 2,000,013 assertions passed 702.37ms
500000 interning 8 KB in 189.67ms i.e. 2636046/s, aver. 0us, 40.2 MB/s
500000 direct 7.6 MB in 53.84ms i.e. 9286430/s, aver. 0us, 141.7 MB/s
- TObjectDynArrayWrapper: 167,501 assertions passed 76.13ms
- TObjArray: 3,230 assertions passed 8.72ms
- Fast string compare: 71 assertions passed 102us
- IdemPropName: 199 assertions passed 681us
- Url encoding: 150 assertions passed 6.36ms
- GUID: 9,007 assertions passed 15.81ms
- IsMatch: 1,109 assertions passed 519us
- Soundex: 35 assertions passed 190us
- Numerical conversions: 2,344,207 assertions passed 1.14s
- Integers: 33,828 assertions passed 163.43ms
- crc32c: 290,057 assertions passed 290.53ms
pas 141.6 MB/s fast 0.9 GB/s sse42 1 GB/s
- Random32: 201,002 assertions passed 14.83ms
- Bloom filters: 2,010,072 assertions passed 757.07ms
- DeltaCompress: 87 assertions passed 16.48ms
- Curr 64: 20,056 assertions passed 5.31ms
- CamelCase: 11 assertions passed 92us
- Bits: 4,774 assertions passed 210us
- Ini files: 7,009 assertions passed 85.85ms
- UTF8: 134,209 assertions passed 2.69s
- Baudot code: 10,007 assertions passed 78.27ms
- Iso 8601 date and time: 76,021 assertions passed 23.45ms
- Time zones: 408 assertions passed 208.63ms
- Url decoding: 1,100 assertions passed 491us
- Mime types: 30 assertions passed 84us
- Quick select: 4,015 assertions passed 299.40ms
- TSynTable: 875 assertions passed 13.92ms
- TSynCache: 404 assertions passed 301us
- TSynFilter: 1,005 assertions passed 11.09ms
- TSynValidate: 677 assertions passed 2.26ms
- TSynLogFile: 49 assertions passed 569us
- TSynUniqueIdentifier: 1,300,002 assertions passed 1.92s
- TSynDictionary: 119,930 assertions passed 165.17ms
- TSynQueue: 6,541,501 assertions passed 1s
Total failed: 0 / 18,822,964 - Low level common PASSED 12.49s
1.2. Low level types:
- RTTI: 443 assertions passed 607us
- Url encoding: 200 assertions passed 1.57ms
- Encode decode JSON: 416,595 assertions passed 586.23ms
- Variants: 66 assertions passed 86us
- Mustache renderer: 147 assertions passed 4.07ms
- TDocVariant: 71,777 assertions passed 776.77ms
- TDecimal128: 17,446 assertions passed 7.20ms
- BSON: 245,070 assertions passed 23.73ms
100000 TBSONObjectID.ComputeNew in 20.64ms i.e. 4843084/s, aver. 0us
- TSynTableStatement: 221 assertions passed 241us
- TSynMonitorUsage: 1,202 assertions passed 277us
Total failed: 0 / 753,167 - Low level types PASSED 1.40s
1.3. Big table:
- TSynBigTable: 19,207 assertions passed 659.75ms
- TSynBigTableString: 16,126 assertions passed 143.12ms
- TSynBigTableMetaData: 475,563 assertions passed 5.42s
- TSynBigTableRecord: 375,563 assertions passed 8.46s
Total failed: 0 / 886,459 - Big table PASSED 14.70s
1.4. Synopse PDF:
- TPdfDocument: 4 assertions passed 2.04ms
- TPdfDocumentGDI: 8 assertions passed 14.26ms
Total failed: 0 / 12 - Synopse PDF PASSED 17.03ms
1.5. Cryptographic routines:
- Adler32: 1 assertion passed 61us
- MD5: 167 assertions passed 4.61ms
- SHA1: 17 assertions passed 37.03ms
- SHA256: 20 assertions passed 107.92ms
- SHA512: 27 assertions passed 101.95ms
- SHA3: 8,225 assertions passed 124.91ms
- AES256: 22,762 assertions passed 1.19s
cypher 1..450 bytes with AES-NI: 2.10ms, without: 5.55ms
- RC4: 1,011 assertions passed 8.78ms
- Base64: 13,992 assertions passed 491.56ms
- CompressShaAes: 1,683 assertions passed 9.60ms
- TAESPNRG: 27,303 assertions passed 174.22ms
- CryptDataForCurrentUser: 5,000 assertions passed 27.72ms
2000 AES-CFB in 23.77ms i.e. 84111/s, aver. 11us, 43.8 MB/s
- CryptDataForCurrentUserAPI: 5,000 assertions passed 3.10s
2000 DPAPI in 3.09s i.e. 645/s, aver. 1.54ms, 359.8 KB/s
- JWT: 162,738 assertions passed 1.79s
1000 HS256 in 7.08ms i.e. 141083/s, aver. 7us
1000 HS384 in 5.66ms i.e. 176429/s, aver. 5us
1000 HS512 in 5.60ms i.e. 178539/s, aver. 5us
1000 S3224 in 3.99ms i.e. 250250/s, aver. 3us
1000 S3256 in 3.91ms i.e. 255689/s, aver. 3us
1000 S3384 in 4.48ms i.e. 222816/s, aver. 4us
1000 S3512 in 3.43ms i.e. 290951/s, aver. 3us
1000 S3S128 in 4.23ms i.e. 236016/s, aver. 4us
1000 S3S256 in 3.55ms i.e. 281135/s, aver. 3us
100 ES256 in 688.23ms i.e. 145/s, aver. 6.88ms
- Benchmark: 55,000 assertions passed 1.01s
2500 crc32c in 3.61ms i.e. 691562/s or 1.4 GB/s
2500 xxhash32 in 2.36ms i.e. 1057529/s or 2.1 GB/s
2500 md5 in 11.03ms i.e. 226613/s or 482.2 MB/s
2500 sha1 in 65.70ms i.e. 38051/s or 80.9 MB/s
2500 hmacsha1 in 65.20ms i.e. 38342/s or 81.6 MB/s
2500 sha256 in 109.79ms i.e. 22770/s or 48.4 MB/s
2500 hmacsha256 in 120.69ms i.e. 20714/s or 44 MB/s
2500 sha512 in 44.26ms i.e. 56478/s or 120.1 MB/s
2500 hmacsha512 in 49.36ms i.e. 50644/s or 107.7 MB/s
2500 sha3_256 in 65.07ms i.e. 38419/s or 81.7 MB/s
2500 sha3_512 in 109.56ms i.e. 22818/s or 48.5 MB/s
2500 rc4 in 21.07ms i.e. 118612/s or 252.4 MB/s
2500 aes128cfb in 15.35ms i.e. 162866/s or 346.6 MB/s
2500 aes128ofb in 15.29ms i.e. 163420/s or 347.7 MB/s
2500 aes128cfbcrc in 32ms i.e. 78120/s or 166.2 MB/s
2500 aes128ofbcrc in 38.82ms i.e. 64391/s or 137 MB/s
2500 aes256cfb in 18.84ms i.e. 132633/s or 282.2 MB/s
2500 aes256ofb in 19.06ms i.e. 131144/s or 279.1 MB/s
2500 aes256cfbcrc in 30.96ms i.e. 80744/s or 171.8 MB/s
2500 aes256ofbcrc in 34.93ms i.e. 71561/s or 152.2 MB/s
2500 shake128 in 62.19ms i.e. 40193/s or 85.5 MB/s
2500 shake256 in 77.55ms i.e. 32236/s or 68.6 MB/s
Total failed: 0 / 302,946 - Cryptographic routines PASSED 8.20s
1.6. ECC cryptography:
- Reference vectors: 23 assertions passed 58.15ms
- ecc_make_key: 50 assertions passed 281.64ms
- ecdsa_sign: 50 assertions passed 312.77ms
- ecdsa_verify: 50 assertions passed 349.88ms
- ecdh_shared_secret: 147 assertions passed 602.92ms
- Certificates and signatures: 91 assertions passed 254.18ms
- ECC command line tool: 118 assertions passed 386.27ms
- ECDHE stream protocol: 521,295 assertions passed 1.73s
Total failed: 0 / 521,824 - ECC cryptography PASSED 3.98s
1.7. Compression:
- In memory compression: 12 assertions passed 1.38s
- GZIP format: 29 assertions passed 2.76s
- ZIP format: 76 assertions passed 10.44s
- SynLZO: 3,006 assertions passed 297.68ms
- SynLZ: 23,412 assertions passed 492.91ms
- TAlgoCompress: 458 assertions passed 86.45ms
TAlgoSynLZ 169.1 KB->78.6 KB: comp 72:33MB/s decomp 58:125MB/s
TAlgoDeflate 169.1 KB->38 KB: comp 5:1MB/s decomp 11:50MB/s
TAlgoDeflateFast 169.4 KB->46.9 KB: comp 14:4MB/s decomp 12:46MB/s
Total failed: 0 / 26,993 - Compression PASSED 15.48s
1.8. Protocols:
- RTSP over HTTP: 1,900 assertions passed 238.35ms
Total failed: 0 / 1,900 - Protocols PASSED 239.09ms
2. mORMot
2.1. File based:
- Database direct access: 22,278 assertions passed 588.09ms
- Virtual table direct access: 12 assertions passed 1.73ms
- TSQLTableJSON: 149,085 assertions passed 355.36ms
- TSQLRestClientDB: 615,201 assertions passed 7.26s
- Regexp function: 6,016 assertions passed 57.48ms
- TRecordVersion: 20,060 assertions passed 289.67ms
Total failed: 0 / 812,652 - File based PASSED 8.55s
2.2. File based memory map:
- Database direct access: 22,258 assertions passed 535.71ms
- Virtual table direct access: 12 assertions passed 1.64ms
- TSQLTableJSON: 149,085 assertions passed 358.19ms
- TSQLRestClientDB: 615,199 assertions passed 6.48s
- Regexp function: 6,016 assertions passed 61.70ms
- TRecordVersion: 20,060 assertions passed 286.58ms
Total failed: 0 / 812,630 - File based memory map PASSED 7.72s
2.3. File based WAL:
- Database direct access: 22,278 assertions passed 710.17ms
- Virtual table direct access: 12 assertions passed 1.67ms
- TSQLTableJSON: 149,085 assertions passed 355.11ms
- TSQLRestClientDB: 615,201 assertions passed 7.28s
- Regexp function: 6,016 assertions passed 61.96ms
- TRecordVersion: 20,060 assertions passed 291.32ms
Total failed: 0 / 812,652 - File based WAL PASSED 8.72s
2.4. Memory based:
- Database direct access: 22,258 assertions passed 538.39ms
- Virtual table direct access: 12 assertions passed 1.43ms
- TSQLTableJSON: 149,085 assertions passed 358.03ms
- TSQLRestClientDB: 683,507 assertions passed 9.47s
- Regexp function: 6,016 assertions passed 132.10ms
- TRecordVersion: 20,060 assertions passed 416.93ms
- TSQLTableWritable: 24,056 assertions passed 17.28ms
- RTree: 280,024 assertions passed 7.23s
10000 With RTree in 3.56s i.e. 2808/s, aver. 356us
10000 With RTreeInteger in 3.66s i.e. 2728/s, aver. 366us
- Shard write: 10,602 assertions passed 611.04ms
- Shard read: 140,001 assertions passed 1.04s
- Shard read after purge: 114,003 assertions passed 834.52ms
- MaxShardCount: 144,002 assertions passed 823.38ms
Total failed: 0 / 1,593,626 - Memory based PASSED 21.51s
2.5. Basic classes:
- TSQLRecord: 88 assertions passed 3.09ms
- TSQLRecordSigned: 200 assertions passed 10.87ms
- TSQLModel: 16 assertions passed 156us
- TSQLRestServerFullMemory: 1,222,461 assertions passed 4.71s
Total failed: 0 / 1,222,765 - Basic classes PASSED 4.73s
2.6. Client server access:
- TSQLHttpServer: 2 assertions passed 5.24ms
using HTTP API 1.0
- TSQLHttpClient: 3 assertions passed 62.38ms
using TSQLHttpClientWinHTTP
- HTTP client keep alive: 3,087 assertions passed 433.93ms
4.7 KB, first 9.06ms, done 401.70ms i.e. 2489/s, aver. 401us, 11.6 MB/s
- HTTP client multi connect: 3,087 assertions passed 615.40ms
4.7 KB, first 742us, done 587.98ms i.e. 1700/s, aver. 587us, 7.9 MB/s
- HTTP client encrypted: 3,087 assertions passed 446.82ms
4.7 KB, first 1.23ms, done 424.40ms i.e. 2356/s, aver. 424us, 11 MB/s
- HTTP client custom encryption aes sha: 3,087 assertions passed 455.98ms
4.7 KB, first 4.20ms, done 428.23ms i.e. 2335/s, aver. 428us, 10.9 MB/s
- HTTP client custom encryption aes: 3,087 assertions passed 445.55ms
4.7 KB, first 388us, done 424.24ms i.e. 2357/s, aver. 424us, 11 MB/s
- HTTP client custom encryption sha: 3,087 assertions passed 455.12ms
4.7 KB, first 452us, done 429.35ms i.e. 2329/s, aver. 429us, 10.8 MB/s
- Named pipe access: 3,089 assertions passed 670.01ms
4.7 KB, first 246.57ms, done 199.54ms i.e. 5011/s, aver. 199us, 23.4 MB/s
- Local window messages: 3,088 assertions passed 145.81ms
4.7 KB, first 252us, done 132.99ms i.e. 7518/s, aver. 132us, 35.1 MB/s
- Direct in process access: 3,056 assertions passed 134.83ms
4.7 KB, first 94us, done 96.48ms i.e. 10364/s, aver. 96us, 48.4 MB/s
- HTTP several DB servers: 9,604 assertions passed 1.70s
4.7 KB, first 1.03ms, done 538.49ms i.e. 1857/s, aver. 538us, 8.6 MB/s
4.7 KB, first 1.45ms, done 529.14ms i.e. 1889/s, aver. 529us, 8.8 MB/s
4.7 KB, first 1.05ms, done 435.77ms i.e. 2294/s, aver. 435us, 10.7 MB/s
Total failed: 0 / 37,364 - Client server access PASSED 5.59s
2.7. Service oriented architecture:
- Weak interfaces: 56 assertions passed 715us
- Service initialization: 267 assertions passed 13.42ms
- Direct call: 606,564 assertions passed 140.15ms
- Server side: 606,584 assertions passed 143.48ms
- Client side REST: 808,779 assertions passed 4.09s
- Client side REST as JSON object: 808,773 assertions passed 4.53s
- Client side REST sessions stats: 808,773 assertions passed 5.51s
- Client side REST locked: 808,777 assertions passed 4.79s
- Client side REST main thread: 808,777 assertions passed 5.30s
- Client side REST background thread: 808,777 assertions passed 4.26s
- Client side REST sign with crc 32c: 808,773 assertions passed 3.74s
- Client side REST sign with xxhash: 808,773 assertions passed 3.71s
- Client side REST sign with md 5: 808,773 assertions passed 3.76s
- Client side REST sign with sha 256: 808,773 assertions passed 4.15s
- Client side REST sign with sha 512: 808,773 assertions passed 4.44s
- Client side REST weak authentication: 808,773 assertions passed 3.56s
- Client side REST basic authentication: 808,773 assertions passed 4.11s
- Client side REST custom record layout: 808,773 assertions passed 3.68s
- Client side REST service log to DB: 808,773 assertions passed 6.96s
- Client side JSONRPC: 808,773 assertions passed 3.80s
- Test over HTTP: 10,987 assertions passed 734.70ms
- Security: 139 assertions passed 5.72ms
- Mocks and stubs: 30,032 assertions passed 150.10ms
Total failed: 0 / 14,195,015 - Service oriented architecture PASSED 1m11
2.8. Bidirectional remote connection:
- Websockets JSON protocol: 60 assertions passed 175us
- Websockets binary protocol: 240 assertions passed 354us
- Run http server: 2 assertions passed 2.34ms
- SOA callback on server side: 4,580 assertions passed 25.09ms
- SOA callback via JSON websockets: 4,583 assertions passed 227.48ms
- SOA callback via binary websockets: 4,583 assertions passed 218.85ms
- TRecordVersion: 20,068 assertions passed 360.78ms
Total failed: 0 / 34,116 - Bidirectional remote connection PASSED 839.71ms
2.9. External database:
- TQuery: 2,003 assertions passed 14.08ms
- SynDBRemote: 42,707 assertions passed 631.52ms
- DB properties persistence: 7 assertions passed 403us
- External records: 2 assertions passed 306us
- Auto adapt SQL: 942 assertions passed 212.99ms
- Crypted database: 253,277 assertions passed 508.80ms
- External via REST: 170,355 assertions passed 2.56s
- External via virtual table: 170,355 assertions passed 4.23s
- External via REST with change tracking: 180,455 assertions passed 6.17s
! External database - JET database
! Exception ESQLite3Exception raised with messsage:
! Error SQLITE_ERROR (1) [Step] using 3.25.2 - TSQLRestStorageExternal.Create:
TSQLRecordPeople: unable to create external missing field People.FirstName - SQL
="ALTER TABLE People ADD FirstName LongText"8m7☺, extended_errcode=1
2.10. Multi thread process:
- Create thread pool: 1 assertion passed 4.16ms
- TSQLRestServerDB: 4,822 assertions passed 1.09s
1=14361/s 2=10014/s 5=8011/s 10=4003/s 30=1175/s 50=797/s
- TSQLRestClientDB: 4,822 assertions passed 1.06s
1=10469/s 2=10030/s 5=8004/s 10=4005/s 30=1333/s 50=811/s
- TSQLRestClientURINamedPipe: 2,412 assertions passed 1.64s
1=1302/s 2=1100/s 5=523/s
- TSQLRestClientURIMessage: 3,222 assertions passed 385.79ms
1=5713/s 2=7077/s 5=4028/s 10=2635/s
- Windows API: 4,822 assertions passed 1.28s
1=3511/s 2=3434/s 5=3501/s 10=3244/s 30=1351/s 50=803/s
- Socket API: 4,822 assertions passed 1.27s
1=5441/s 2=5158/s 5=4836/s 10=4112/s 30=1338/s 50=802/s
- Websockets: 4,822 assertions passed 1.27s
1=4540/s 2=5699/s 5=5020/s 10=4003/s 30=1333/s 50=803/s
- Locked: 4,822 assertions passed 1.08s
1=8497/s 2=10114/s 5=8194/s 10=4003/s 30=1333/s 50=792/s
- Unlocked: 4,822 assertions passed 1.05s
1=8955/s 2=10013/s 5=8018/s 10=4002/s 30=1333/s 50=806/s
- Main thread: 4,822 assertions passed 1.26s
1=10635/s 2=8097/s 5=3830/s 10=2611/s 30=1124/s 50=724/s
- Background thread: 4,822 assertions passed 1.06s
1=12061/s 2=12450/s 5=7769/s 10=4007/s 30=1333/s 50=795/s
Total failed: 0 / 49,033 - Multi thread process PASSED 12.53s
2.11. DDD shared units:
- User model: 3,276 assertions passed 1.28ms
- Authentication model: 20,006 assertions passed 270.22ms
- Email validation process: 55 assertions passed 78.72ms
- User CQRS repository: 57,106 assertions passed 1.01s
Total failed: 0 / 80,443 - DDD shared units PASSED 1.36s
2.12. DDD multi thread:
- Delete old database: 1 assertion passed 998us
- Start server: 1 assertion passed 35.12ms
- Single client test: 1,002 assertions passed 380.36ms
- Multi threaded clients test: 21 assertions passed 629.52ms
Total failed: 0 / 1,025 - DDD multi thread PASSED 1.05s
Windows XP SP3 (5.1.2600) (cp1252)
1 x Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz (x86)
Using mORMot 1.18.4842
TSQLite3LibraryStatic 3.25.2 with internal MM
Generated with: Delphi XE8 32 bit compiler
Time elapsed for all tests: 3m35
Performed 2018-10-10 15:23:41 by User1 on XP1VM
Total assertions failed for all test suits: 0 / 41,787,690
! Some tests FAILED: please correct the code.
Done - Press ENTER to Exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment