Created
February 6, 2022 18:49
-
-
Save martin-doyle/e0279e6cb88c70183a8ea322075e6de0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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