Skip to content

Instantly share code, notes, and snippets.

@synopse
Created January 28, 2019 10:32
Show Gist options
  • Select an option

  • Save synopse/eed03418678fbf8442802891dee985ed to your computer and use it in GitHub Desktop.

Select an option

Save synopse/eed03418678fbf8442802891dee985ed to your computer and use it in GitHub Desktop.
root@Acer:/mnt/d/Dev/Lib/SQLite3/fpc/bin/x86_64-linux# ./TestSQL3
Synopse mORMot Framework Automated tests
------------------------------------------
1. Synopse libraries
1.1. Low level common:
- System copy record: 82 assertions passed 1.55ms
- TRawUTF8List: 130,009 assertions passed 83.09ms
- TDynArray: 1,089,792 assertions passed 185.15ms
- TDynArrayHashed: 1,200,629 assertions passed 154.37ms
- TObjectListHashed: 999,764 assertions passed 823.68ms
- TObjectListSorted: 79,904 assertions passed 72.77ms
- TSynNameValue: 40,032 assertions passed 10.67ms
- TRawUTF8Interning: 2,000,013 assertions passed 239.41ms
500000 interning 8 KB in 78.15ms i.e. 6,397,461/s, aver. 0us, 97.6 MB/s
500000 direct 7.6 MB in 37.63ms i.e. 13,286,917/s, aver. 0us, 202.7 MB/s
- TObjectDynArrayWrapper: 167,501 assertions passed 24.38ms
- TObjArray: 3,230 assertions passed 3.63ms
- Fast string compare: 71 assertions passed 187us
- IdemPropName: 208 assertions passed 250us
- Url encoding: 150 assertions passed 1.53ms
- GUID: 9,005 assertions passed 5.86ms
- IsMatch: 2,661 assertions passed 276us
- TExprParserMatch: 140 assertions passed 197us
- Soundex: 35 assertions passed 1.66ms
- Numerical conversions: 2,344,025 assertions passed 410.62ms
- Integers: 33,828 assertions passed 33.51ms
- crc32c: 300,068 assertions passed 168.64ms
pas 326.7 MB/s fast 818.6 MB/s sse42 6.1 GB/s sse42+aesni 7.4 GB/s
- Random32: 201,002 assertions passed 10.77ms
- Bloom filters: 2,010,072 assertions passed 339.37ms
- DeltaCompress: 87 assertions passed 2.64ms
- Curr 64: 20,056 assertions passed 1.71ms
- CamelCase: 11 assertions passed 210us
- Bits: 4,774 assertions passed 220us
- Ini files: 7,009 assertions passed 48.39ms
- UTF8: 99,181 assertions passed 531.63ms
- Baudot code: 10,007 assertions passed 39.38ms
- Iso 8601 date and time: 76,021 assertions passed 6.91ms
- Time zones: 400 assertions passed 201.68ms
- Url decoding: 1,100 assertions passed 1.79ms
- Mime types: 30 assertions passed 709us
- Quick select: 4,015 assertions passed 109.49ms
- TSynTable: 875 assertions passed 7.04ms
- TSynCache: 404 assertions passed 214us
- TSynFilter: 804 assertions passed 4.75ms
- TSynValidate: 677 assertions passed 1.20ms
- TSynLogFile: 43 assertions passed 289us
- TSynUniqueIdentifier: 1,300,002 assertions passed 894.67ms
- TSynDictionary: 119,930 assertions passed 40.17ms
- TSynQueue: 6,541,501 assertions passed 362.63ms
Total failed: 0 / 18,799,148 - Low level common PASSED 4.87s
1.2. Low level types:
- RTTI: 443 assertions passed 684us
- Url encoding: 200 assertions passed 1.04ms
- Encode decode JSON: 394,145 assertions passed 159.36ms
- Variants: 64 assertions passed 216us
- Mustache renderer: 147 assertions passed 3.16ms
- TDocVariant: 71,777 assertions passed 109.34ms
- TDecimal128: 17,446 assertions passed 2.56ms
- BSON: 245,068 assertions passed 160.54ms
100000 TBSONObjectID.ComputeNew in 158.64ms i.e. 630,358/s, aver. 1us
- TSynTableStatement: 221 assertions passed 356us
- TSynMonitorUsage: 1,202 assertions passed 685us
Total failed: 0 / 730,713 - Low level types PASSED 446.46ms
1.3. Cryptographic routines:
- Adler32: 1 assertion passed 667us
- MD5: 167 assertions passed 402us
- SHA1: 17 assertions passed 6.81ms
- SHA256: 40 assertions passed 51.41ms
using SSE4 instruction set
- SHA512: 27 assertions passed 25.71ms
- SHA3: 8,225 assertions passed 73ms
- AES256: 18,100 assertions passed 367.62ms
cypher 1..450 bytes with AES-NI: 857us, without: 1.86ms
- RC4: 1,011 assertions passed 5.79ms
- Base64: 13,992 assertions passed 137.23ms
- CompressShaAes: 1,683 assertions passed 5.57ms
- TAESPNRG: 27,303 assertions passed 64.52ms
- CryptDataForCurrentUser: 5,000 assertions passed 9.84ms
2000 AES-CFB in 9.05ms i.e. 220,970/s, aver. 4us, 115.2 MB/s
- JWT: 162,738 assertions passed 461.22ms
1000 HS256 in 2.06ms i.e. 483,558/s, aver. 2us
1000 HS384 in 2.22ms i.e. 448,833/s, aver. 2us
1000 HS512 in 2.29ms i.e. 435,919/s, aver. 2us
1000 S3224 in 2.89ms i.e. 345,303/s, aver. 2us
1000 S3256 in 3.51ms i.e. 284,738/s, aver. 3us
1000 S3384 in 2.42ms i.e. 413,052/s, aver. 2us
1000 S3512 in 2.05ms i.e. 487,567/s, aver. 2us
1000 S3S128 in 1.99ms i.e. 502,512/s, aver. 1us
1000 S3S256 in 2.02ms i.e. 494,315/s, aver. 2us
100 ES256 in 112.11ms i.e. 891/s, aver. 1.12ms
- Benchmark: 55,000 assertions passed 483.64ms
2500 crc32c in 307us i.e. 8143322/s or 16.9 GB/s
2500 xxhash32 in 1ms i.e. 2490039/s or 5.1 GB/s
2500 md5 in 9.83ms i.e. 254116/s or 540.8 MB/s
2500 sha1 in 19.79ms i.e. 126275/s or 268.7 MB/s
2500 hmacsha1 in 22.07ms i.e. 113270/s or 241 MB/s
2500 sha256 in 22.61ms i.e. 110565/s or 235.3 MB/s
2500 hmacsha256 in 24.83ms i.e. 100680/s or 214.2 MB/s
2500 sha512 in 15.91ms i.e. 157045/s or 334.2 MB/s
2500 hmacsha512 in 19ms i.e. 131572/s or 280 MB/s
2500 sha3_256 in 39.40ms i.e. 63438/s or 135 MB/s
2500 sha3_512 in 74.38ms i.e. 33608/s or 71.5 MB/s
2500 rc4 in 18.03ms i.e. 138642/s or 295 MB/s
2500 aes128cfb in 13.89ms i.e. 179920/s or 382.9 MB/s
2500 aes128ofb in 10.41ms i.e. 239946/s or 510.6 MB/s
2500 aes128cfbcrc in 15.55ms i.e. 160740/s or 342 MB/s
2500 aes128ofbcrc in 12.83ms i.e. 194810/s or 414.6 MB/s
2500 aes256cfb in 17.61ms i.e. 141900/s or 301.9 MB/s
2500 aes256ofb in 14.12ms i.e. 176966/s or 376.6 MB/s
2500 aes256cfbcrc in 19.49ms i.e. 128224/s or 272.8 MB/s
2500 aes256ofbcrc in 17.02ms i.e. 146868/s or 312.5 MB/s
2500 shake128 in 56.45ms i.e. 44282/s or 94.2 MB/s
2500 shake256 in 38.06ms i.e. 65675/s or 139.7 MB/s
Total failed: 0 / 293,304 - Cryptographic routines PASSED 1.72s
1.4. ECC cryptography:
- Reference vectors: 23 assertions passed 13.85ms
- ecc_make_key: 200 assertions passed 141.59ms
- ecdsa_sign: 200 assertions passed 148.86ms
- ecdsa_verify: 200 assertions passed 185.85ms
- ecdh_shared_secret: 597 assertions passed 315.30ms
- Certificates and signatures: 91 assertions passed 41.20ms
- ECC command line tool: 469 assertions passed 419.74ms
- ECDHE stream protocol: 521,295 assertions passed 861.93ms
Total failed: 0 / 523,075 - ECC cryptography PASSED 2.13s
1.5. Compression:
- In memory compression: 12 assertions passed 321.54ms
- GZIP format: 29 assertions passed 697.31ms
- ZIP format: 66 assertions passed 2.03s
- SynLZO: 3,006 assertions passed 165.89ms
- SynLZ: 23,222 assertions passed 161.69ms
- TAlgoCompress: 314 assertions passed 9.33s
TAlgoSynLZ 53 MB->5 MB: comp 579:55MB/s decomp 27:285MB/s
TAlgoLizard 53 MB->3.9 MB: comp 57:4MB/s decomp 27:371MB/s
TAlgoLizardFast 53 MB->6.8 MB: comp 588:75MB/s decomp 47:367MB/s
TAlgoLizardHuffman 53 MB->2 MB: comp 607:23MB/s decomp 12:324MB/s
TAlgoDeflate 53 MB->4.8 MB: comp 63:5MB/s decomp 19:211MB/s
TAlgoDeflateFast 53 MB->7 MB: comp 100:13MB/s decomp 20:157MB/s
Total failed: 0 / 26,649 - Compression PASSED 12.72s
1.6. Protocols:
- RTSP over HTTP: 1,900 assertions passed 532.82ms
Total failed: 0 / 1,900 - Protocols PASSED 533.08ms
2. mORMot
2.1. File based:
- Database direct access: 22,278 assertions passed 152.12ms
- Virtual table direct access: 12 assertions passed 3.48ms
- TSQLTableJSON: 144,079 assertions passed 83.11ms
- TSQLRestClientDB: 310,073 assertions passed 1.28s
- TRecordVersion: 20,060 assertions passed 150.73ms
Total failed: 0 / 496,502 - File based PASSED 1.67s
2.2. File based memory map:
- Database direct access: 22,258 assertions passed 125.98ms
- Virtual table direct access: 12 assertions passed 3.45ms
- TSQLTableJSON: 144,079 assertions passed 77.96ms
- TSQLRestClientDB: 310,071 assertions passed 1.25s
- TRecordVersion: 20,060 assertions passed 149.99ms
Total failed: 0 / 496,480 - File based memory map PASSED 1.61s
2.3. File based WAL:
- Database direct access: 22,278 assertions passed 155.87ms
- Virtual table direct access: 12 assertions passed 3.57ms
- TSQLTableJSON: 144,079 assertions passed 83.35ms
- TSQLRestClientDB: 310,073 assertions passed 1.38s
- TRecordVersion: 20,060 assertions passed 141.87ms
Total failed: 0 / 496,502 - File based WAL PASSED 1.76s
2.4. Memory based:
- Database direct access: 22,258 assertions passed 115.02ms
- Virtual table direct access: 12 assertions passed 2.45ms
- TSQLTableJSON: 144,079 assertions passed 71.75ms
- TSQLRestClientDB: 402,407 assertions passed 2.47s
- TRecordVersion: 20,060 assertions passed 183.01ms
- TSQLTableWritable: 24,056 assertions passed 4.04ms
- RTree: 280,024 assertions passed 2.45s
10000 With RTree in 1.28s i.e. 7,811/s, aver. 128us
10000 With RTreeInteger in 1.16s i.e. 8,561/s, aver. 116us
- Shard write: 10,602 assertions passed 317.24ms
- Shard read: 140,001 assertions passed 585.17ms
- Shard read after purge: 114,003 assertions passed 476.82ms
- MaxShardCount: 144,002 assertions passed 477.08ms
Total failed: 0 / 1,301,504 - Memory based PASSED 7.17s
2.5. Basic classes:
- TSQLRecord: 85 assertions passed 1.87ms
- TSQLRecordSigned: 200 assertions passed 15.06ms
- TSQLModel: 16 assertions passed 926us
- TSQLRestServerFullMemory: 982,481 assertions passed 1.38s
Total failed: 0 / 982,782 - Basic classes PASSED 1.40s
2.6. Client server access:
- TSQLHttpServer: 2 assertions passed 36.91ms
using Synopse Sockets.514
- TSQLHttpClient: 4 assertions passed 27.84ms
using TSQLHttpClientWinSock
- HTTP client keep alive: 4,087 assertions passed 312.08ms
4.7 KB, first 3.45ms, done 294.10ms i.e. 3400/s, aver. 294us, 15.9 MB/s
- HTTP client multi connect: 4,087 assertions passed 1.42s
4.7 KB, first 736us, done 1.37s i.e. 725/s, aver. 1.37ms, 3.3 MB/s
- HTTP client encrypted: 4,087 assertions passed 270.59ms
4.7 KB, first 2.37ms, done 255.91ms i.e. 3907/s, aver. 255us, 18.2 MB/s
- HTTP client custom encryption aes sha: 4,087 assertions passed 241.87ms
4.7 KB, first 227us, done 230.90ms i.e. 4330/s, aver. 230us, 20.2 MB/s
- HTTP client custom encryption aes: 4,087 assertions passed 243.38ms
4.7 KB, first 234us, done 232.59ms i.e. 4299/s, aver. 232us, 20.1 MB/s
- HTTP client custom encryption sha: 4,087 assertions passed 241.99ms
4.7 KB, first 230us, done 231.25ms i.e. 4324/s, aver. 231us, 20.2 MB/s
- Direct in process access: 4,056 assertions passed 32.18ms
4.7 KB, first 30us, done 20.85ms i.e. 47945/s, aver. 20us, 224.1 MB/s
- HTTP several DB servers: 12,604 assertions passed 1.04s
4.7 KB, first 448us, done 277.80ms i.e. 3599/s, aver. 277us, 16.8 MB/s
4.7 KB, first 462us, done 269.22ms i.e. 3714/s, aver. 269us, 17.3 MB/s
4.7 KB, first 466us, done 267.37ms i.e. 3740/s, aver. 267us, 17.4 MB/s
Total failed: 0 / 41,188 - Client server access PASSED 3.88s
2.7. Service oriented architecture:
- Weak interfaces: 56 assertions passed 1.10ms
- Service initialization: 267 assertions passed 17.92ms
- Direct call: 596,049 assertions passed 59.37ms
- Server side: 596,069 assertions passed 31.60ms
- Client side REST: 794,759 assertions passed 1.97s
- Client side REST as JSON object: 794,753 assertions passed 1.95s
- Client side REST sessions stats: 794,753 assertions passed 2.20s
- Client side REST locked: 794,757 assertions passed 1.87s
- Client side REST main thread: 794,757 assertions passed 4.57s
- Client side REST background thread: 794,757 assertions passed 4.90s
- Client side REST sign with crc 32c: 794,753 assertions passed 1.85s
- Client side REST sign with xxhash: 794,753 assertions passed 1.82s
- Client side REST sign with md 5: 794,753 assertions passed 1.83s
- Client side REST sign with sha 256: 794,753 assertions passed 1.90s
- Client side REST sign with sha 512: 794,753 assertions passed 1.98s
- Client side REST weak authentication: 794,753 assertions passed 1.75s
- Client side REST basic authentication: 794,753 assertions passed 1.94s
- Client side REST custom record layout: 794,753 assertions passed 1.86s
- Client side REST service log to DB: 794,753 assertions passed 2.82s
- Client side JSONRPC: 794,753 assertions passed 1.90s
- Test over HTTP: 10,482 assertions passed 590.58ms
- Security: 139 assertions passed 12.66ms
- Mocks and stubs: 30,030 assertions passed 84.95ms
Total failed: 0 / 13,949,158 - Service oriented architecture PASSED 37.99s
2.8. Bidirectional remote connection:
- Websockets JSON protocol: 60 assertions passed 207us
- Websockets binary protocol: 240 assertions passed 260us
- Run http server: 2 assertions passed 3.72ms
- SOA callback on server side: 4,580 assertions passed 2.47ms
- SOA callback via JSON websockets: 4,583 assertions passed 232.17ms
- SOA callback via binary websockets: 4,583 assertions passed 238.29ms
- TRecordVersion: 20,068 assertions passed 192.14ms
Total failed: 0 / 34,116 - Bidirectional remote connection PASSED 670.59ms
2.9. External database:
- TQuery: 2,003 assertions passed 21.22ms
- SynDBRemote: 35,589 assertions passed 405.95ms
- DB properties persistence: 7 assertions passed 6.84ms
- External records: 2 assertions passed 1.17ms
- Auto adapt SQL: 942 assertions passed 12.49ms
- Crypted database: 253,277 assertions passed 189.60ms
- External via REST: 170,355 assertions passed 1.48s
- External via virtual table: 170,355 assertions passed 3.62s
- External via REST with change tracking: 180,455 assertions passed 4.47s
Total failed: 0 / 812,985 - External database PASSED 10.22s
2.10. Multi thread process:
- Create thread pool: 1 assertion passed 8.38ms
- TSQLRestServerDB: 4,822 assertions passed 1.07s
1=8434/s 2=9305/s 5=7905/s 10=3870/s 30=1312/s 50=788/s
- TSQLRestClientDB: 4,822 assertions passed 1.10s
1=5764/s 2=9360/s 5=7858/s 10=3946/s 30=1312/s 50=788/s
- Socket API: 4,822 assertions passed 1.43s
1=2917/s 2=3570/s 5=4059/s 10=3766/s 30=1314/s 50=780/s
- Websockets: 4,822 assertions passed 5.90s
1=2531/s 2=2053/s 5=158/s 10=194/s 30=1278/s 50=773/s
- libcurl: 4,822 assertions passed 1.62s
1=1808/s 2=2293/s 5=3232/s 10=3169/s 30=1286/s 50=768/s
- Locked: 4,822 assertions passed 1.10s
1=7057/s 2=9351/s 5=7902/s 10=3636/s 30=1312/s 50=788/s
- Unlocked: 4,822 assertions passed 1.13s
1=4599/s 2=9176/s 5=7825/s 10=3254/s 30=1313/s 50=786/s
- Main thread: 4,822 assertions passed 1.39s
1=5506/s 2=5964/s 5=3109/s 10=2440/s 30=1089/s 50=682/s
- Background thread: 4,822 assertions passed 1.09s
1=7408/s 2=6953/s 5=7926/s 10=3952/s 30=1311/s 50=787/s
Total failed: 0 / 43,399 - Multi thread process PASSED 15.90s
2.11. DDD shared units:
- User model: 3,276 assertions passed 2.35ms
- Authentication model: 20,006 assertions passed 141.10ms
- Email validation process: 55 assertions passed 78.48ms
- User CQRS repository: 57,106 assertions passed 610.17ms
Total failed: 0 / 80,443 - DDD shared units PASSED 836.02ms
2.12. DDD multi thread:
- Delete old database: 1 assertion passed 3.22ms
- Start server: 1 assertion passed 38.65ms
- Single client test: 1,002 assertions passed 222.05ms
- Multi threaded clients test: 21 assertions passed 304.20ms
Total failed: 0 / 1,025 - DDD multi thread PASSED 569.33ms
Ubuntu 16.04.5 LTS - Linux 4.4.0-17134-Microsoft (cp65001)
4 x Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz (x64)
Using mORMot 1.18.4997
TSQLite3LibraryStatic 3.26.0 with internal MM
Generated with: Free Pascal 3.3.1 64 bit compiler
Time elapsed for all tests: 1m51
Performed 2019-01-28 11:27:36 by root on Acer
Total assertions failed for all test suits: 0 / 39,110,873
! All tests passed successfully.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment