On Tue, 10 Nov 2015 13:19:56 +0100
Stefano Miccoli [email protected] wrote:
> Do you experience slow dir times only on the root / or also on the
> sensors? say something like ?/system/? that should not require any bus
> activity?
So I've learned how to use the timing test program more intelligently. You can
read many of the same things that show in the httpserver by adding paths to the
command line. My default "dir" tests are still much slower than other people
report, but if I read a cached temperature, or a fixed value, my times are not
so bad.
The
statement: proxy_obj.dir("/")
line shows what was read, in this case the default test when you don't specify
something else.
Reading an uncached temperature with the default iteration count took far
longer than I was willing to wait, probably a couple of minutes:
statement: proxy_obj.read("/uncached/28.884d88000000/temperature")
So I cut back by a factor of 25 for later tests:
>python StefanoTimingTest.py3 -n 2 -r 2
>owserver://10.1.1.4:4304/uncached/28.884d88000000/temperature
My slow default dir test:
>python StefanoTimingTest.py3 owserver://10.1.1.4:4304
statement: proxy_obj.dir("/")
** non persistent : 44.21 ms, 44.27 ms, 46.81 ms, 47.25 ms, 47.36 ms,
** persistent : 37.20 ms, 43.46 ms, 44.35 ms, 45.04 ms, 46.49 ms,
>python StefanoTimingTest.py3 owserver://10.1.1.4:4304
statement: proxy_obj.dir("/")
** non persistent : 44.79 ms, 47.74 ms, 48.77 ms, 63.80 ms, 64.26 ms,
** persistent : 40.73 ms, 41.59 ms, 54.08 ms, 61.37 ms, 61.55 ms,
Fixed values:
>python StefanoTimingTest.py3 owserver://10.1.1.4:4304/28.884D88000000/family
statement: proxy_obj.read("/28.884D88000000/family")
[Errno 1] Startup - command line parameters invalid: '/28.884D88000000/family'
>python StefanoTimingTest.py3 owserver://10.1.1.4:4304/28.884D88000000/type
statement: proxy_obj.read("/28.884D88000000/type")
** non persistent : 4.01 ms, 4.09 ms, 4.43 ms, 4.50 ms, 4.52 ms,
** persistent : 1.63 ms, 1.69 ms, 1.72 ms, 1.74 ms, 1.95 ms,
>python StefanoTimingTest.py3 owserver://10.1.1.4:4304/28.884D88000000/power
statement: proxy_obj.read("/28.884D88000000/power")
** non persistent : 3.88 ms, 3.95 ms, 4.06 ms, 4.37 ms, 4.51 ms,
** persistent : 1.71 ms, 1.75 ms, 1.80 ms, 1.85 ms, 2.36 ms,
Temperatures:
>python StefanoTimingTest.py3
>owserver://10.1.1.4:4304/28.884D88000000/temperature
statement: proxy_obj.read("/28.884D88000000/temperature")
** non persistent : 4.63 ms, 4.85 ms, 5.19 ms, 5.21 ms, 6.89 ms,
** persistent : 2.05 ms, 2.22 ms, 2.31 ms, 2.37 ms, 2.67 ms,
>python StefanoTimingTest.py3
>owserver://10.1.1.4:4304/28.d64788000000/temperature
statement: proxy_obj.read("/28.d64788000000/temperature")
** non persistent : 4.55 ms, 4.59 ms, 5.23 ms, 5.24 ms, 5.36 ms,
** persistent : 2.15 ms, 2.15 ms, 2.25 ms, 2.29 ms, 2.52 ms,
Fewer reps (time numbers still comparable):
>python StefanoTimingTest.py3 -n 2 -r 2
>owserver://10.1.1.4:4304/28.d64788000000/temperature
statement: proxy_obj.read("/28.d64788000000/temperature")
number: 2
repetitions: 2
** non persistent : 4.39 ms, 4.42 ms,
** persistent : 2.03 ms, 3.24 ms,
>python StefanoTimingTest.py3 -n 2 -r 2
>owserver://10.1.1.4:4304/uncached/28.d64788000000/temperature
statement: proxy_obj.read("/uncached/28.d64788000000/temperature")
number: 2
repetitions: 2
** non persistent : 1072.08 ms, 1073.56 ms,
** persistent : 1204.99 ms, 1701.97 ms,
>python StefanoTimingTest.py3 -n 2 -r 2
>owserver://10.1.1.4:4304/uncached/28.884d88000000/temperature
statement: proxy_obj.read("/uncached/28.884d88000000/temperature")
number: 2
repetitions: 2
** non persistent : 2132.88 ms, 2136.67 ms,
** persistent : 1202.56 ms, 1205.10 ms,
>python StefanoTimingTest.py3 -n 2 -r 2
>owserver://10.1.1.4:4304/uncached/28.884d88000000/temperature
statement: proxy_obj.read("/uncached/28.884d88000000/temperature")
number: 2
repetitions: 2
** non persistent : 1072.14 ms, 1094.32 ms,
** persistent : 1399.37 ms, 1400.18 ms,
Back to default dir - I wonder how the first one came out faster than usual?
>python StefanoTimingTest.py3 -n 2 -r 2 owserver://10.1.1.4:4304
statement: proxy_obj.dir("/")
number: 2
repetitions: 2
** non persistent : 28.46 ms, 48.92 ms,
** persistent : 43.34 ms, 46.25 ms,
>python StefanoTimingTest.py3 -n 2 -r 2 owserver://10.1.1.4:4304
statement: proxy_obj.dir("/")
number: 2
repetitions: 2
** non persistent : 49.77 ms, 53.75 ms,
** persistent : 43.48 ms, 45.85 ms,
So why would my directory listing take so much longer than other systems? Could
it be w1 versus USB or I2C? My system doesn't have the normal owfs virtual
directories, it has w1's version in a different location. Maybe it has to do
more work to create the dir info? But I thought the point of owserver was to
have all that info cached and ready...
Running the test program on the BBB:
ubuntu@arm:~/Lpkg$ python3 StefanoTimingTest.py3 -n 2 -r 2
owserver://10.1.1.4:4304/uncached/28.884d88000000/temperature
pyownet: ver. 0.8.2 (/usr/local/lib/python3.4/dist-packages/pyownet/__init__.py)
proxy_obj: ownet server at ('10.1.1.4', 4304)
server info: pid 933, ver. unknown
timeit:
statement: proxy_obj.read("/uncached/28.884d88000000/temperature")
number: 2
repetitions: 2
** non persistent : 1085.39 ms, 1606.32 ms,
** persistent : 1070.52 ms, 1071.16 ms,
ubuntu@arm:~/Lpkg$ python3 StefanoTimingTest.py3 -n 2 -r 2
owserver://10.1.1.4:4304/28.884d88000000/temperature
statement: proxy_obj.read("/28.884d88000000/temperature")
** non persistent : 6.58 ms, 6.89 ms,
** persistent : 4.66 ms, 5.16 ms,
ubuntu@arm:~/Lpkg$ python3 StefanoTimingTest.py3 -n 2 -r 2
owserver://10.1.1.4:4304/28.884d88000000/type
statement: proxy_obj.read("/28.884d88000000/type")
** non persistent : 2.57 ms, 2.75 ms,
** persistent : 1.28 ms, 1.93 ms,
Fixed values a bit faster, temps slower, uncached about the same. Guess that
makes sense.
Loren
| Loren Amelang | [email protected] |
------------------------------------------------------------------------------
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers