Stopwatch plugin measures execution time of PHP code:
<stopwatch reset> - Resets stopwatch to zero.<stopwatch show> - Show elapsed time in seconds since last reset.Here is JSON data with src attribute, which links to itself. So it is recursively loaded 30 times.
<stopwatch reset>
<json id=cookie path=cookie src=benchmark#cookie display=combined,log*>
{
"name": "Butter cookie",
"type": "cookie",
"Ingredients": {
"eggs": "3",
"flour": "500 g",
"sugar": "300 g",
"butter": "250 g"
}
}
</json>
Time elapsed: <stopwatch show>
{
"name": "Butter cookie",
"type": "cookie",
"Ingredients": {
"eggs": "3",
"flour": "500 g",
"sugar": "300 g",
"butter": "250 g"
}
}Time elapsed: 0.004
Here is one long JSON file with random data: file1. For testing purposes it should be copied to different filenames 1000 times. Here is bash command for this:
for i in {2..1000}; do cp file1.txt "file$i.txt"; done
null
<json path=stack1[] src=.1000files:file1 display=combined,log*></json>
Time elapsed: 0.000
null
<json path=stack2[] src=.1000files:file1* display=combined,log*></json>
Time elapsed: 0.000
<json path=stack3[] src=.1000files:file*></json>
Time elapsed: 0.000
%$stack2.55.0.friends.0.name%
(null)
Time elapsed: 0.001
%$stack2[]{"Name0":0.friends.0.name, "Name1":1.friends.0.name, "Name2":2.friends.0.name, "Name3":3.friends.0.name, "Name4":4.friends.0.name, "Name5":5.friends.0.name, "Name6":6.friends.0.name, "Name7":7.friends.0.name, "Name8":8.friends.0.name}%
| Name0 | Name1 | Name2 | Name3 | Name4 | Name5 | Name6 | Name7 | Name8 |
|---|---|---|---|---|---|---|---|---|
| (null) | (null) | (null) | (null) | (null) | (null) | (null) | (null) | (null) |
%$stack3[]{ ... }%
| Name0 | Name1 | Name2 | Name3 | Name4 | Name5 | Name6 | Name7 | Name8 |
|---|---|---|---|---|---|---|---|---|
| (null) | (null) | (null) | (null) | (null) | (null) | (null) | (null) | (null) |
This is most time consuming:
%$stack2 #code#%
nullTime elapsed: 0.000