Skip to content

Instantly share code, notes, and snippets.

@martin-doyle
Created February 6, 2022 18:49
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 martin-doyle/e0279e6cb88c70183a8ea322075e6de0 to your computer and use it in GitHub Desktop.
Save martin-doyle/e0279e6cb88c70183a8ea322075e6de0 to your computer and use it in GitHub Desktop.
mORMot2 Regression Tests
--------------------------
1. Core units
1.1. Core base:
- RecordCopy: 743 assertions passed 75us
- TRawUtf8List: 190,174 assertions passed 48.22ms
- TDynArray: 1,091,805 assertions passed 81.69ms
- TDynArrayHashed: 1,599,070 assertions passed 359.87ms
- TSynDictionary: 283,050 assertions passed 339ms
- TSynQueue: 6,541,501 assertions passed 148.79ms
- TSynNameValue: 40,032 assertions passed 4.69ms
- TRawUtf8Interning: 2,000,013 assertions passed 64.59ms
500000 interning 16 KB in 15.18ms i.e. 31.3M/s, aver. 30ns, 0.9 GB/s
500000 direct 15.2 MB in 14.70ms i.e. 32.4M/s, aver. 29ns, 1 GB/s
- TObjArray: 3,230 assertions passed 543us
- Custom RTL: 297,646 assertions passed 493.92ms
FillChar in 16.73ms, 23.2 GB/s
Move in 142.05ms, 2.2 GB/s
small Move in 49.55ms, 2.2 GB/s
big Move in 116.87ms, 3.3 GB/s
FillCharFast in 4.90ms, 79.2 GB/s
MoveFast in 7.57ms, 41.2 GB/s
small MoveFast in 11.40ms, 9.6 GB/s
big MoveFast in 9.60ms, 40.6 GB/s
- Fast string compare: 41 assertions passed 7us
- IdemPropName: 228 assertions passed 47us
- Url encoding: 167 assertions passed 677us
- GUID: 10,019 assertions passed 2.13ms
- ParseCommandArguments: 232 assertions passed 14us
- IsMatch: 4,250 assertions passed 113us
- TExprParserMatch: 140 assertions passed 53us
- Soundex: 35 assertions passed 7us
- Numerical conversions: 2,546,758 assertions passed 189.82ms
100000 FloatToText in 25.92ms i.e. 3.6M/s, aver. 259ns, 69.9 MB/s
100000 str in 12.17ms i.e. 7.8M/s, aver. 121ns, 188 MB/s
100000 DoubleToShort in 6.66ms i.e. 14.3M/s, aver. 66ns, 300.5 MB/s
100000 DoubleToAscii in 6.31ms i.e. 15.1M/s, aver. 63ns, 320.5 MB/s
- Integers: 146,512 assertions passed 27.91ms
- crc32c: 310,089 assertions passed 66.31ms
pas 343.8 MB/s fast 819.5 MB/s armv8 9.4 GB/s
- Random32: 221,003 assertions passed 1.74ms
240000 Random32 in 1.33ms i.e. 172M/s, aver. 5ns, 688.3 MB/s
RandomBytes in 334us, 1.1 GB/s
- Bloom filters: 2,010,072 assertions passed 60.25ms
- DeltaCompress: 87 assertions passed 2.58ms
- Curr 64: 20,056 assertions passed 759us
- CamelCase: 11 assertions passed 5us
- Bits: 15,567 assertions passed 11.93ms
- Ini files: 7,028 assertions passed 12.58ms
- UTF8: 1,386,075 assertions passed 584.68ms
- Url decoding: 1,301 assertions passed 124us
- Mime types: 450 assertions passed 589us
- Baudot code: 10,007 assertions passed 19.83ms
- Iso 8601 date and time: 200,831 assertions passed 3.90ms
- Time zones: 459 assertions passed 205ms
- Quick select: 4,015 assertions passed 85.29ms
- TSynCache: 408 assertions passed 67us
- TSynFilter: 804 assertions passed 1ms
- TSynValidate: 677 assertions passed 295us
- TSynLogFile: 56 assertions passed 22us
- TSynUniqueIdentifier: 1,300,002 assertions passed 170.27ms
200000 ComputeNew in 1.70ms i.e. 111.8M/s, aver. 8ns
Total failed: 0 / 20,244,644 - Core base PASSED 2.98s
1.2. Core process:
- RTTI: 1,345 assertions passed 259us
- Url encoding: 300 assertions passed 295us
- Encode decode JSON: 429,232 assertions passed 50.74ms
- JSON benchmark: 100,519 assertions passed 851.23ms
StrLen() in 869us, 22 GB/s
IsValidUtf8(RawUtf8) in 5.72ms, 3.3 GB/s
IsValidUtf8(PUtf8Char) in 6.64ms, 2.8 GB/s
IsValidJson(RawUtf8) in 16.50ms, 1.1 GB/s
IsValidJson(PUtf8Char) in 16.07ms, 1.1 GB/s
JsonArrayCount(P) in 15.96ms i.e. 9.8M/s, 1.2 GB/s
JsonArrayCount(P,PMax) in 15.99ms i.e. 9.8M/s, 1.1 GB/s
JsonObjectPropCount() in 8.74ms, 1.2 GB/s
jsonUnquotedPropNameCompact in 34.40ms, 505.9 MB/s
jsonHumanReadable in 50.37ms, 495 MB/s
TDocVariant in 107.67ms i.e. 1.4M/s, 182 MB/s
TDocVariant no guess in 107.70ms i.e. 1.4M/s, 182 MB/s
TDocVariant dvoIntern in 97.02ms i.e. 1.6M/s, 202 MB/s
TOrmTableJson save in 15.47ms i.e. 10.1M/s, 557.2 MB/s
TOrmTableJson exp in 19.11ms i.e. 8.2M/s, 1 GB/s
TOrmTableJson not exp in 12.55ms i.e. 12.5M/s, 686.9 MB/s
TDocVariant FromResults exp in 43.27ms i.e. 3.6M/s, 453 MB/s
TDocVariant FromResults not exp in 36.65ms i.e. 4.2M/s, 235.2 MB/s
DynArrayLoadJson exp in 38.34ms i.e. 4M/s, 511.3 MB/s
DynArrayLoadJson non exp in 26.11ms i.e. 6M/s, 330.1 MB/s
TOrmPeopleObjArray exp in 62.36ms i.e. 2.5M/s, 314.3 MB/s
TOrmPeopleObjArray non exp in 40.42ms i.e. 3.8M/s, 213.2 MB/s
fpjson in 55.98ms i.e. 287K/s, 35 MB/s
- Wiki markdown to html: 56 assertions passed 34us
- Variants: 122 assertions passed 36us
- Mustache renderer: 166 assertions passed 499us
- TDocVariant: 91,944 assertions passed 48.48ms
- TDecimal128: 17,446 assertions passed 911us
- BSON: 245,070 assertions passed 3.61ms
100000 TBsonObjectID.ComputeNew in 3.31ms i.e. 28.7M/s, aver. 33ns
- TSelectStatement: 229 assertions passed 51us
- TSynMonitorUsage: 1,202 assertions passed 41us
Total failed: 0 / 887,631 - Core process PASSED 956.29ms
1.3. Core collections:
- IList: 6,944,142 assertions passed 518.93ms
500000 IList<Byte> in 1.83ms i.e. 260.2M/s, aver. 3ns
500000 IList<Word> in 1.84ms i.e. 258.4M/s, aver. 3ns
500000 IList<Integer> in 1.95ms i.e. 243.4M/s, aver. 3ns
500000 IList<Cardinal> in 1.90ms i.e. 250.3M/s, aver. 3ns
500000 IList<Int64> in 2.28ms i.e. 208.5M/s, aver. 4ns
500000 IList<QWord> in 2.24ms i.e. 212.4M/s, aver. 4ns
500000 IList<Single> in 1.90ms i.e. 250.1M/s, aver. 3ns
500000 IList<Double> in 2.23ms i.e. 213.7M/s, aver. 4ns
500000 IList<TDateTime> in 2.19ms i.e. 216.9M/s, aver. 4ns
500000 IList<UTF8String> in 5.22ms i.e. 91.2M/s, aver. 10ns
500000 IList<UnicodeString> in 5.26ms i.e. 90.5M/s, aver. 10ns
500000 IList<Variant> in 11.32ms i.e. 42.1M/s, aver. 22ns
500000 IList<THash128> in 5.61ms i.e. 84.8M/s, aver. 11ns
500000 IList<TGuid> in 5.15ms i.e. 92.5M/s, aver. 10ns
- IKeyValue: 3,800,050 assertions passed 119.79ms
100000 integer,Int64 add in 4.75ms i.e. 20M/s, aver. 47ns
100000 integer,Int64 get in 1.82ms i.e. 52.2M/s, aver. 18ns
100000 RawUtf8,double add in 10.29ms i.e. 9.2M/s, aver. 102ns
100000 RawUtf8,double get in 3.05ms i.e. 31.2M/s, aver. 30ns
100000 integer,Int64 capa add in 3.83ms i.e. 24.8M/s, aver. 38ns
100000 integer,Int64 capa get in 1.83ms i.e. 51.9M/s, aver. 18ns
100000 RawUtf8,double capa add in 6.89ms i.e. 13.8M/s, aver. 68ns
100000 RawUtf8,double capa get in 2.21ms i.e. 43M/s, aver. 22ns
Total failed: 0 / 10,744,192 - Core collections PASSED 638.75ms
1.4. Core crypto:
- MD5: 166 assertions passed 187us
- SHA1: 8 assertions passed 3.38ms
- SHA256: 20 assertions passed 8.31ms
- SHA512: 32 assertions passed 25.17ms
- SHA3: 8,225 assertions passed 18.13ms
- AES: 72,700 assertions passed 126.33ms
- AES_GCM: 215 assertions passed 51us
- RC4: 1,016 assertions passed 696us
- Hashes: 21 assertions passed 293.90ms
- Base64: 26,064 assertions passed 127.96ms
encoding in 43.77ms, 2.2 GB/s
decoding in 61.62ms, 1.5 GB/s
- TAesPNRG: 362,626 assertions passed 135.97ms
100000 mORMot Random32 in 1.23ms i.e. 77M/s, aver. 12ns, 308.3 MB/s
mORMot FillRandom in 20us, 4.6 GB/s
100000 OpenSSL Random32 in 81.04ms i.e. 1.1M/s, aver. 810ns, 4.7 MB/s
OpenSSL FillRandom in 60us, 1.5 GB/s
100000 Lecuyer Random32 in 548us i.e. 174M/s, aver. 5ns, 696.1 MB/s
Lecuyer RandomBytes in 79us, 1.1 GB/s
- CryptDataForCurrentUser: 5,000 assertions passed 2.76ms
2000 AES-CFB in 2.70ms i.e. 722.8K/s, aver. 1.35us, 385.8 MB/s
- JWT: 164,916 assertions passed 518.94ms
1000 HS256 in 561us i.e. 1.7M/s, aver. 561ns
1000 HS384 in 1.76ms i.e. 552.3K/s, aver. 1.76us
1000 HS512 in 1.78ms i.e. 548.6K/s, aver. 1.78us
1000 S3224 in 813us i.e. 1.1M/s, aver. 813ns
1000 S3256 in 798us i.e. 1.1M/s, aver. 798ns
1000 S3384 in 804us i.e. 1.1M/s, aver. 804ns
1000 S3512 in 814us i.e. 1.1M/s, aver. 814ns
1000 S3S128 in 807us i.e. 1.1M/s, aver. 807ns
1000 S3S256 in 865us i.e. 1.1M/s, aver. 865ns
100 ES256 in 5.43ms i.e. 17.9K/s, aver. 54us
100 RS256 in 2.32ms i.e. 41.9K/s, aver. 23us
100 RS384 in 2.30ms i.e. 42.3K/s, aver. 23us
100 RS512 in 2.27ms i.e. 43K/s, aver. 22us
100 PS256 in 2.31ms i.e. 42.2K/s, aver. 23us
100 PS384 in 2.35ms i.e. 41.5K/s, aver. 23us
100 PS512 in 2.34ms i.e. 41.7K/s, aver. 23us
100 ES256 in 6.28ms i.e. 15.5K/s, aver. 62us
100 ES384 in 48.25ms i.e. 2K/s, aver. 482us
100 ES512 in 116.20ms i.e. 860/s, aver. 1.16ms
100 ES256K in 19.75ms i.e. 4.9K/s, aver. 197us
100 EdDSA in 8.37ms i.e. 11.6K/s, aver. 83us
- TBinaryCookieGenerator: 82,944 assertions passed 5.42ms
16384 generate in 2.88ms i.e. 5.4M/s, aver. 176ns
16384 validate in 724us i.e. 21.5M/s, aver. 44ns
- Catalog: 2,943 assertions passed 745.54ms
- Benchmark: 107,500 assertions passed 361.60ms
2500 crc32c in 635us i.e. 3.7M/s or 8.1 GB/s
2500 xxhash32 in 822us i.e. 2.9M/s or 6.3 GB/s
2500 crc32 in 634us i.e. 3.7M/s or 8.1 GB/s
2500 adler32 in 205us i.e. 11.6M/s or 25.3 GB/s
2500 hash32 in 468us i.e. 5M/s or 11.1 GB/s
2500 md5 in 11.26ms i.e. 216.8K/s or 472.5 MB/s
2500 sha1 in 22.86ms i.e. 106.7K/s or 232.6 MB/s
2500 hmacsha1 in 25.02ms i.e. 97.5K/s or 212.5 MB/s
2500 sha256 in 2.64ms i.e. 0.9M/s or 1.9 GB/s
2500 hmacsha256 in 3.02ms i.e. 806.5K/s or 1.7 GB/s
2500 sha384 in 19.01ms i.e. 128.3K/s or 279.7 MB/s
2500 hmacsha384 in 22.38ms i.e. 109K/s or 237.6 MB/s
2500 sha512 in 19.03ms i.e. 128.2K/s or 279.4 MB/s
2500 hmacsha512 in 22.43ms i.e. 108.8K/s or 237.1 MB/s
2500 sha3_256 in 16.32ms i.e. 149.5K/s or 325.8 MB/s
2500 sha3_512 in 29.81ms i.e. 81.8K/s or 178.4 MB/s
2500 rc4 in 5.09ms i.e. 479.2K/s or 1 GB/s
2500 mormot aes-128-cfb in 7.42ms i.e. 328.7K/s or 716.4 MB/s
2500 mormot aes-128-ofb in 4.33ms i.e. 563.1K/s or 1.1 GB/s
2500 mormot aes-128-c64 in 1.46ms i.e. 1.6M/s or 3.5 GB/s
2500 mormot aes-128-ctr in 1.43ms i.e. 1.6M/s or 3.6 GB/s
2500 mormot aes-128-cfc in 7.34ms i.e. 332.4K/s or 724.4 MB/s
2500 mormot aes-128-ofc in 5ms i.e. 488.1K/s or 1 GB/s
2500 mormot aes-128-ctc in 3.34ms i.e. 728.9K/s or 1.5 GB/s
2500 mormot aes-128-gcm in 5.16ms i.e. 473.1K/s or 1 GB/s
2500 mormot aes-256-cfb in 8.79ms i.e. 277.6K/s or 605.1 MB/s
2500 mormot aes-256-ofb in 5.63ms i.e. 433.2K/s or 0.9 GB/s
2500 mormot aes-256-c64 in 1.81ms i.e. 1.3M/s or 2.8 GB/s
2500 mormot aes-256-ctr in 1.81ms i.e. 1.3M/s or 2.8 GB/s
2500 mormot aes-256-cfc in 8.69ms i.e. 280.6K/s or 611.7 MB/s
2500 mormot aes-256-ofc in 6.46ms i.e. 377.6K/s or 822.9 MB/s
2500 mormot aes-256-ctc in 3.94ms i.e. 619.6K/s or 1.3 GB/s
2500 mormot aes-256-gcm in 5.22ms i.e. 467.7K/s or 0.9 GB/s
2500 openssl aes-128-cfb in 5.57ms i.e. 438K/s or 0.9 GB/s
2500 openssl aes-128-ofb in 4.82ms i.e. 506K/s or 1 GB/s
2500 openssl aes-128-ctr in 886us i.e. 2.6M/s or 5.8 GB/s
2500 openssl aes-128-gcm in 1.85ms i.e. 1.2M/s or 2.8 GB/s
2500 openssl aes-256-cfb in 6.97ms i.e. 349.9K/s or 762.6 MB/s
2500 openssl aes-256-ofb in 6.22ms i.e. 392.4K/s or 855.2 MB/s
2500 openssl aes-256-ctr in 1.07ms i.e. 2.2M/s or 4.8 GB/s
2500 openssl aes-256-gcm in 2.08ms i.e. 1.1M/s or 2.4 GB/s
2500 shake128 in 36.31ms i.e. 67.2K/s or 146.5 MB/s
2500 shake256 in 15.83ms i.e. 154.1K/s or 335.9 MB/s
Total failed: 0 / 834,396 - Core crypto PASSED 2.37s
1.5. Core ecc:
- Reference vectors: 23 assertions passed 3.91ms
- ECC: 2,104 assertions passed 346.44ms
300 Ecc256r1MakeKey in 3.43ms i.e. 85.2K/s, aver. 11us
300 Ecc256r1Uncompress in 16.61ms i.e. 17.6K/s, aver. 55us
300 Ecc256r1Sign in 5.31ms i.e. 55.1K/s, aver. 17us
300 Ecc256r1Verify in 19.40ms i.e. 15.1K/s, aver. 64us
300 Ecc256r1VerifyUncomp in 267.67ms i.e. 1K/s, aver. 892us
598 Ecc256r1SharedSecret in 30.42ms i.e. 19.1K/s, aver. 50us
- Certificates and signatures: 106 assertions passed 2.79ms
- Ecc command line tool: 704 assertions passed 31.94ms
- ECDHE stream protocol: 63,393 assertions passed 502.31ms
100 efAesCrc128 in 3.03ms i.e. 32.2K/s, aver. 30us, 840.8 MB/s
100 efAesCfb128 in 2.99ms i.e. 32.5K/s, aver. 29us, 850.3 MB/s
100 efAesOfb128 in 2.68ms i.e. 36.3K/s, aver. 26us, 0.9 GB/s
100 efAesCtr128 in 789us i.e. 123.7K/s, aver. 7.89us, 3.1 GB/s
100 efAesCbc128 in 1.52ms i.e. 64K/s, aver. 15us, 1.6 GB/s
100 efAesCrc256 in 3.54ms i.e. 27.5K/s, aver. 35us, 718.7 MB/s
100 efAesCfb256 in 3.61ms i.e. 27K/s, aver. 36us, 705.9 MB/s
100 efAesOfb256 in 3.35ms i.e. 29.1K/s, aver. 33us, 759.8 MB/s
100 efAesCtr256 in 877us i.e. 111.3K/s, aver. 8.77us, 2.8 GB/s
100 efAesCbc256 in 1.89ms i.e. 51.4K/s, aver. 18us, 1.3 GB/s
100 efAesGcm128 in 828us i.e. 117.9K/s, aver. 8.28us, 3 GB/s
100 efAesGcm256 in 927us i.e. 105.3K/s, aver. 9.27us, 2.6 GB/s
100 efAesCtc128 in 1.58ms i.e. 61.6K/s, aver. 15us, 1.5 GB/s
100 efAesCtc256 in 1.82ms i.e. 53.3K/s, aver. 18us, 1.3 GB/s
- OpenSSL: 532 assertions passed 236.01ms
3 RSA 2048 Generation in 56.77ms i.e. 52/s, aver. 18.92ms
30 RSA 2048 Sign in 24.07ms i.e. 1.2K/s, aver. 802us
30 RSA 2048 Verify in 657us i.e. 44.5K/s, aver. 21us
3 RSA-PSS 2048 Generation in 98.94ms i.e. 30/s, aver. 32.98ms
30 RSA-PSS 2048 Sign in 24.03ms i.e. 1.2K/s, aver. 801us
30 RSA-PSS 2048 Verify in 682us i.e. 42.9K/s, aver. 22us
100 prime256v1 Generation in 3.70ms i.e. 26.3K/s, aver. 37us
100 prime256v1 Sign in 2.85ms i.e. 34.2K/s, aver. 28us
100 prime256v1 Verify in 6.22ms i.e. 15.6K/s, aver. 62us
100 ed25519 Generation in 3.27ms i.e. 29.8K/s, aver. 32us
100 ed25519 Sign in 6.05ms i.e. 16.1K/s, aver. 60us
100 ed25519 Verify in 8.47ms i.e. 11.5K/s, aver. 84us
Total failed: 0 / 66,862 - Core ecc PASSED 1.12s
1.6. Core compression:
- In memory compression: 21 assertions passed 220.82ms
- GZIP format: 30 assertions passed 71.16ms
- ZIP format: 880 assertions passed 737.92ms
- SynLZ: 14,785 assertions passed 43.37ms
- TAlgoCompress: 1,218 assertions passed 296.05ms
TAlgoSynLZ 3.8 MB->2 MB: comp 378.3MB/s decomp 710.4MB/s
TAlgoRleLZ 3.8 MB->2 MB: comp 250.3MB/s decomp 674.6MB/s
TAlgoRle 3.8 MB->3.7 MB: comp 681.6MB/s decomp 15.3GB/s
TAlgoLizard 3.8 MB->1.9 MB: comp 57.3MB/s decomp 3GB/s
TAlgoLizardFast 3.8 MB->2.2 MB: comp 508.6MB/s decomp 3.7GB/s
TAlgoLizardHuffman 3.8 MB->1.8 MB: comp 166.2MB/s decomp 1.2GB/s
TAlgoDeflate 3.8 MB->1.5 MB: comp 57.5MB/s decomp 352.8MB/s
TAlgoDeflateFast 3.8 MB->1.6 MB: comp 92.1MB/s decomp 321.2MB/s
Total failed: 0 / 16,934 - Core compression PASSED 1.37s
1.7. Network protocols:
- Rtsp over http: 1,900 assertions passed 292.13ms
- Rtsp over http buffered write: 1,900 assertions passed 265.68ms
Total failed: 0 / 3,800 - Network protocols PASSED 557.85ms
2. ORM
2.1. Orm core:
- TOrm: 93 assertions passed 386us
- TOrmSigned: 200 assertions passed 704us
- TOrmModel: 49 assertions passed 37us
- TRestServerFullMemory: 1,370,749 assertions passed 411.67ms
Total failed: 0 / 1,371,091 - Orm core PASSED 412.81ms
2.2. Sqlite file:
- Database direct access: 22,291 assertions passed 34.30ms
- Virtual table direct access: 12 assertions passed 376us
- TOrmTableJson: 149,089 assertions passed 34.40ms
- TRestClientDB: 608,198 assertions passed 274.69ms
- Regexp function: 6,015 assertions passed 5.78ms
- TRecordVersion: 20,060 assertions passed 20.08ms
Total failed: 0 / 805,665 - Sqlite file PASSED 369.67ms
2.3. Sqlite file WAL:
- Database direct access: 22,291 assertions passed 35.15ms
- Virtual table direct access: 12 assertions passed 246us
- TOrmTableJson: 149,089 assertions passed 34.35ms
- TRestClientDB: 608,198 assertions passed 282.28ms
- Regexp function: 6,015 assertions passed 5.73ms
- TRecordVersion: 20,060 assertions passed 20.25ms
Total failed: 0 / 805,665 - Sqlite file WAL PASSED 378.04ms
2.4. Sqlite file memory map:
- Database direct access: 22,271 assertions passed 29.39ms
- Virtual table direct access: 12 assertions passed 175us
- TOrmTableJson: 149,089 assertions passed 33.97ms
- TRestClientDB: 608,196 assertions passed 274.11ms
- Regexp function: 6,015 assertions passed 6.06ms
- TRecordVersion: 20,060 assertions passed 19.94ms
Total failed: 0 / 805,643 - Sqlite file memory map PASSED 363.69ms
2.5. Sqlite memory:
- Database direct access: 22,271 assertions passed 28.84ms
- Virtual table direct access: 12 assertions passed 147us
- TOrmTableJson: 149,089 assertions passed 33.65ms
- TRestClientDB: 676,505 assertions passed 410.92ms
- Regexp function: 6,015 assertions passed 5.67ms
- TRecordVersion: 20,060 assertions passed 20.91ms
- TOrmTableWritable: 24,086 assertions passed 2.66ms
- RTree: 280,024 assertions passed 323.57ms
10000 With RTree in 168.09ms i.e. 58K/s, aver. 16us
10000 With RTreeInteger in 154.62ms i.e. 63.1K/s, aver. 15us
- Shard write: 10,602 assertions passed 44.05ms
- Shard read: 140,001 assertions passed 48.31ms
- Shard read after purge: 114,003 assertions passed 38.70ms
- MaxShardCount: 144,002 assertions passed 50.84ms
Total failed: 0 / 1,586,670 - Sqlite memory PASSED 1s
2.6. External database:
- SynDBRemote: 28,471 assertions passed 39.38ms
- DB properties persistence: 7 assertions passed 110us
- External records: 2 assertions passed 97us
- Auto adapt SQL: 1,041 assertions passed 796us
- Crypted database: 253,277 assertions passed 35.52ms
- External via REST: 170,355 assertions passed 234.75ms
- External via virtual table: 170,355 assertions passed 322.95ms
- External via REST with change tracking: 180,455 assertions passed 550.73ms
Total failed: 0 / 803,963 - External database PASSED 1.18s
2.7. Client server access:
- TRestHttpServer: 2 assertions passed 3.55ms
using THttpAsyncServer Ubuntu 5.13.0 epoll
- TRestHttpClient: 4 assertions passed 4.59ms
using TRestHttpClientSocket
- HTTP client keep alive: 4,088 assertions passed 97.05ms
4.7 KB, first 637us, done 92.01ms i.e. 10868/s, aver. 92us, 49.9 MB/s
- HTTP client multi connect: 4,088 assertions passed 114.69ms
4.7 KB, first 147us, done 109.65ms i.e. 9119/s, aver. 109us, 41.9 MB/s
- Direct in process access: 4,057 assertions passed 9.65ms
4.7 KB, first 20us, done 8.68ms i.e. 115114/s, aver. 8.68us, 529.4 MB/s
- HTTP several DB servers: 12,607 assertions passed 625.80ms
4.7 KB, first 195us, done 79ms i.e. 12658/s, aver. 79us, 58.2 MB/s
4.7 KB, first 137us, done 77.50ms i.e. 12902/s, aver. 77us, 59.3 MB/s
4.7 KB, first 169us, done 93.33ms i.e. 10714/s, aver. 93us, 49.2 MB/s
Total failed: 0 / 24,846 - Client server access PASSED 1.06s
2.8. Multi thread process:
- Create thread pool: 1 assertion passed 12.70ms
- TRestServerDB: 8,422 assertions passed 59.17ms
1=89434/s 2=83782/s 5=71927/s 10=70907/s 30=67165/s 50=68179/s
- TRestClientDB: 8,422 assertions passed 51.86ms
1=142450/s 2=136266/s 5=108459/s 10=75091/s 30=61151/s 50=55027/s
- TCP sockets: 8,414 assertions passed 530.88ms
1=10908/s 2=14955/s 5=19713/s 10=27915/s 30=33435/s 50=29038/s
- Unix domain sockets: 8,418 assertions passed 541.20ms
1=8858/s 2=16354/s 5=23553/s 10=28091/s 30=34382/s 50=31289/s
- Websockets: 8,416 assertions passed 407.43ms
1=7477/s 2=11630/s 5=19056/s 10=23989/s 30=20501/s 50=16763/s
- Locked: 8,422 assertions passed 62.20ms
1=90229/s 2=88383/s 5=95147/s 10=80229/s 30=53858/s 50=45992/s
- Unlocked: 8,422 assertions passed 51.57ms
1=143501/s 2=100748/s 5=93085/s 10=91074/s 30=70084/s 50=55231/s
- Main thread: 8,421 assertions passed 79.60ms
1=29977/s 2=55732/s 5=71861/s 10=74531/s 30=67281/s 50=56993/s
- Background thread: 8,422 assertions passed 145.04ms
1=36676/s 2=35536/s 5=33674/s 10=29419/s 30=27788/s 50=20292/s
MaxThreads=50 MaxClients=50 TotalOps=18720 TotalClients=882
Total failed: 0 / 75,780 - Multi thread process PASSED 2s
3. SOA
3.1. Service oriented architecture:
- Weak interfaces: 56 assertions passed 45us
- Service initialization: 268 assertions passed 1.05ms
- Direct call: 1,379,310 assertions passed 13.89ms
- Server side: 1,379,330 assertions passed 13.22ms
- Client side REST: 1,839,107 assertions passed 221.73ms
- Client side REST as json object: 1,839,101 assertions passed 231.84ms
- Client side REST sessions stats: 1,839,101 assertions passed 255.90ms
- Client side REST locked: 1,839,105 assertions passed 346.31ms
- Client side REST main thread: 1,839,105 assertions passed 4.23s
- Client side REST background thread: 1,839,105 assertions passed 4.04s
- Client side REST sign with crc 32c: 1,839,101 assertions passed 220.94ms
- Client side REST sign with xxhash: 1,839,101 assertions passed 221.42ms
- Client side REST sign with md 5: 1,839,101 assertions passed 243.56ms
- Client side REST sign with sha 256: 1,839,101 assertions passed 235.36ms
- Client side REST sign with sha 512: 1,839,101 assertions passed 295ms
- Client side REST weak authentication: 1,839,101 assertions passed 211.48ms
- Client side REST basic authentication: 1,839,101 assertions passed 282.15ms
- Client side REST custom record layout: 1,839,101 assertions passed 233.71ms
- Client side REST service log to DB: 1,839,101 assertions passed 307.76ms
- Client side json RPC: 1,839,101 assertions passed 269.14ms
- Test over HTTP: 17,769 assertions passed 542.79ms
- Security: 139 assertions passed 3.48ms
- Mocks and stubs: 30,030 assertions passed 32.57ms
Total failed: 0 / 32,232,536 - Service oriented architecture PASSED 12.46s
3.2. Bidirectional remote connection:
- Websockets protocols: 30,000 assertions passed 5.04ms
- Run http server: 2 assertions passed 3.77ms
- Soa callback on server side: 4,580 assertions passed 1.05ms
- Soa callback via json websockets: 6,898 assertions passed 191.83ms
- Soa callback via binary websockets: 6,898 assertions passed 191.56ms
- Relay start: 4 assertions passed 4.83ms
- Relay soa callback via json websockets: 6,899 assertions passed 478.92ms
- Relay connection recreate: 1 assertion passed 2.25ms
- Relay soa callback via binary websockets: 6,899 assertions passed 527.99ms
- Relay shutdown: 2 assertions passed 128.67ms
- TRecordVersion: 20,068 assertions passed 50.44ms
Total failed: 0 / 82,251 - Bidirectional remote connection PASSED 1.69s
Ubuntu 20.04.3 LTS - Linux 5.13.0-28-generic (cp utf8)
aarch64
on Parallels International GmbH. Parallels ARM Virtual Machine 0.1
Using mORMot 2.0.1
TSqlite3LibraryStatic 3.37.2 with internal MM
Generated with: Free Pascal 3.2 64 bit Linux compiler
Time elapsed for all tests: 30.96s
Performed 2022-02-06 19:02:56 by parallels on ubuntu-linux-20-04-desktop
Total assertions failed for all test suits: 0 / 71,392,569
! All tests passed successfully.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment