mORMot and Open Source friends
File History
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of SQLite3/Samples/25 - JSON performance/JSONPerfTestCases.pas

2020-03-23
11:45
{5882} use PosExChar() instead of PosEx() when possible (faster on FPC) file: [690607011a] check-in: [757ee95b4c] user: ab branch: trunk, size: 57162
2020-01-14
11:29
{5558} fixed samples compilation file: [7cfa384fd0] check-in: [8a7a910695] user: ab branch: trunk, size: 57158
2016-06-08
06:45
{2721} another set of patches by Alf for FPC/Lazarus compatibility - mainly about samples compilation under Lazarus - still some debugging to be done for full dynamic arrays SOA support file: [7066c1d675] check-in: [26bb0f7e53] user: ab branch: trunk, size: 57067
2015-02-21
11:48
{948} trying to use latest JsonDataObjects's TJsonObject.ToUTF8Json new method which appears to be slower than StringToUTF8(doc.ToJSON) - but now serialization has been optimized from 7 seconds to 5 seconds (our SAX version performs in 1 second) file: [3ec3f6ae08] check-in: [50582aecb0] user: ab branch: trunk, size: 57001
2015-02-16
12:52
{909} added overloaded TSQLTable.FieldIndex() and TSQLTable.FieldIndexExisting() methods, to set several local field index integer variables at once file: [23e1ca4ba6] check-in: [d36e8f304a] user: ab branch: trunk, size: 56951
12:22
{908} new "Synopse Table" alternative access benchmark, to show SAX advantages file: [8132d5f8cc] check-in: [0f838524c0] user: ab branch: trunk, size: 57012
11:16
{906} introducing JsonDataObjects library in our JSON performance benchmark file: [1627320ffd] check-in: [efcb1f0b85] user: ab branch: trunk, size: 55029
2015-02-15
13:15
{902} ExeVerionRetrieve() replaced by the more explicit SetExecutableVersion() function - this commit also includes several fixes for the Linux platform file: [f85e0f7755] check-in: [9b60596cae] user: ab branch: trunk, size: 50701
2015-02-01
13:06
{797} included QDAC3 in "25 - JSON performance" sample file: [7950af1d30] check-in: [e758ebb6c0] user: ab branch: trunk, size: 50705
2014-11-23
16:55
{559} BREAKING CHANGE: new SynLog.pas and SynTests.pas units, extracted from SynCommons file: [7d4ce3863a] check-in: [881797779c] user: ab branch: trunk, size: 47528
2014-08-23
14:49
TServiceMethod.InternalExecute() now allows incoming parameters to be encoded as a JSON object, alternatively to a JSON array - see feature request [48e30e0e05] - will also be used probably to implement our MVC model - see [bd94c11ab167] - updated documentation, about this enhancement of transmission content, and about using a CDN service for hosting and scaling file: [1dab21c082] check-in: [85b9c26c5e] user: User branch: trunk, size: 47515
2014-08-22
20:02
implemented fast JSON beautifier and re-formatter via new JSONReformat() JSONBufferReformat() and TTextWriter.AddJSONReformat() for direct conversion of any JSON content into more readable, compact or extended layout file: [11dc793078] check-in: [a3fe48576f] user: User branch: trunk, size: 47518
2014-05-29
08:13
added TTestTableContent.SynopseCrossORM in JSON benchmark sample, testing TJSONTableObject performance: this ORM-dedicated class will be used as primary cross-platform mORMot client for RESTful servers file: [5e8a51ff0a] check-in: [5b061f8fec] user: User branch: trunk, size: 47176
2014-05-28
13:04
added TJSONTable.StepValue() method, for ORM result acccess via late-binding file: [1f3df689c7] check-in: [86cacef934] user: User branch: trunk, size: 45906
2014-05-27
07:01
disabled Delphi 2010 DBXJSON - it is just buggy as hell and not workable with our JSON content! file: [e218b7397a] check-in: [96e7e2a1c5] user: ab branch: trunk, size: 45163
2014-05-20
10:19
added TJSONTable class, which will be used for fast access to mORMot ORM results on client side for [09ae8513eb] also deep code refactoring of the JSON parsing in SynCrossPlatformJSON, via a dedicated TJSONParser structure, and several other optimizations file: [2366ed63ba] check-in: [118bc0edc8] user: User branch: trunk, size: 44641
2014-05-19
19:56
adding performance and regression tests for SynCrossPlatformJSON - see feature request [09ae8513eb] file: [fde4183da2] check-in: [3c184a8ba5] user: User branch: trunk, size: 43861
13:18
in JSON performance sample, TTestHugeContent.SynopseReadRecord will now handle GeoJSON types as an enumeration: used memory comes from 123 MB to 113 MB (and due to previous commit optimizing array allocation strategy, speed comes from 1.52 seconds down to 1.32 seconds) file: [6a8edebc0d] check-in: [c650509bf2] user: User branch: trunk, size: 41338
13:13
fixed several compilation warnings with Delphi XE6 file: [e81e7062e6] check-in: [f125671ed7] user: User branch: trunk, size: 40815
2014-05-17
07:42
completed TTestTableContent.DBXJSON test to read all field values of the table (like other tests) - DBXJSON does not perfom too bad, in fact; but its syntax is difficult to work with properties file: [09562b3880] check-in: [d8d48044bc] user: User branch: trunk, size: 40331
2014-05-16
21:32
added a new TTestTableContent.SuperObjectRecord method SuperObject has some issues for property names lookup... accessing the values via a record (and RTTI) is much faster than using S[...] I[...] and such methods file: [128f6279f7] check-in: [2e384cc0a8] user: User branch: trunk, size: 39866
20:09
added new "25 - JSON performance" sample for benchmarking of JSON process: mORMot (including TDocVariant, late binding, TSQLTable, ORM, record access, BSON) vs SuperObject/dwsJSON/DBXJSON
  • parse/access/write iteration over a small JSON document,
  • read of deeply nested 680 KB JSON (here mORMot is slower than SO/dwsJSON),
  • read of one 180 MB JSON file (with on-the-fly adaptation to fit a record layout),
  • named access to all rows and columns of a 1 MB JSON table, extracted from a SQL request (with comparison with our ORM performance)

On average and in details, mORMot is the fastest in almost all scenarios (with an amazing performance for table/ORM processing), dwsJSON performs better than SuperObject, and DBXJSON is the slowest (by far, but XE6 version is faster than XE4) file: [3d001f8743] check-in: [f23534b4a2] user: User branch: trunk, size: 38743 Added