Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import std.datetime;
- import std.stdio;
- import std.file;
- import std.algorithm;
- import stdJSON = std.json;
- import vibeJSON = vibe.data.json;
- import myJSON = json;
- immutable size_t array_size = 1000;
- immutable int runs = 100;
- immutable size_t chunk_size = 4096;
- string jsonString;
- void buildTestData() {
- auto obj = myJSON.jsonObject();
- obj["a"] = "foo";
- obj["b"] = "bar";
- obj["c"] = "baz";
- auto subobj1 = myJSON.jsonObject();
- subobj1["bla"] = 1234.5f;
- obj["sub"] = subobj1;
- auto subobj2 = myJSON.jsonObject();
- subobj2["alb"] = null;
- subobj1["sub"] = subobj2;
- auto arr = myJSON.jsonArray();
- arr.length = array_size;
- for (size_t i = 0; i < array_size; ++i) {
- arr[i] = obj;
- }
- jsonString = myJSON.toJSON(arr);
- }
- void readArrayStandard() {
- stdJSON.parseJSON(jsonString);
- }
- void readArrayVibe() {
- vibeJSON.parseJsonString(jsonString);
- }
- void readArrayMyWay() {
- myJSON.parseJSON(jsonString);
- }
- void main(string[] argv) {
- buildTestData();
- auto testList = [
- "std.json",
- "vibe.data.json",
- "json"
- ];
- auto result = benchmark!(
- readArrayStandard,
- readArrayVibe,
- readArrayMyWay
- )(runs);
- writefln("Ran for %d runs\n", runs);
- foreach(i, testName; testList) {
- writefln("%s : %s ms", testName, result[i].msecs);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement