• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.
  • The forum software that supports hummy.tv has been upgraded to XenForo 2.0!

    This is a major upgrade which changes the look and feel of the forum somewhat but brings a host of improvements too. Please bear with us as we continue to tweak things and report any issues or suggestions in Site/Forum Issues.

Sqlite

prpr

Well-Known Member
#1
www.sqlite.org claim modern versions of Sqlite are up to 20% more efficient than old versions, so, being a bit sceptical, I decided to test it on the T2 to see what I got, if anything.
I compiled 3.8.7.4 and compared it against 3.7.5 (nearly 4 years old now) and got roughly 8-10% improvements on my rough and ready tests on lengthy operations (loading EPG pages).
May be worth an update?
 

af123

Administrator
Staff member
#2
Definitely worth investigating for the Jim side of things. The Humax software is statically linked against the old version (which is a real shame as if it were dynamically linked I could probably inject scheduling information without a reboot) and the custom firmware itself (i.e. the flash part) contains the old libraries but there shouldn't be any problem updating the bits on disk and that kind of performance gain is worth having.

I was doing some benchmarks comparing direct raw EPG parsing {epg fetch} with database access {epg dbfetch} yesterday and database was much slower.. probably still will be after the update. If you want to do some less rough benchmarking then the Jim {time} command is useful.

Code:
#!/mod/bin/jimsh

source /mod/webif/lib/setup
require epg.class

puts [time {epg fetch -type 1} 10]
puts [time {epg dbfetch -type 1} 10]
The last argument, 10, is the number of iterations to run. It prints the average time taken for each iteration.
 
OP
OP
prpr

prpr

Well-Known Member
#3
The Humax software is statically linked against the old version (which is a real shame as if it were dynamically linked I could probably inject scheduling information without a reboot)
But there is no guarantee the Humax software would read the file is there? It seems to keep everything in memory and just uses the databases as persistent storage. But we will never know...
Code:
puts [time {epg dbfetch -type 1} 10]
That one killed my box :(. Jimsh not killable; telnet from another session connected but got no prompt; ping still worked. Big Red Switch time.
 
OP
OP
prpr

prpr

Well-Known Member
#5
www.sqlite.org claim modern versions of Sqlite are up to 20% more efficient than old versions, so, being a bit sceptical, I decided to test it on the T2 to see what I got, if anything.
I compiled 3.8.7.4 and compared it against 3.7.5 (nearly 4 years old now) and got roughly 8-10% improvements on my rough and ready tests on lengthy operations (loading EPG pages).
3.8.11.1 improves on this by another 3% in my tests.
 
OP
OP
prpr

prpr

Well-Known Member
#6
I see you've updated sqlite3 to 3.11.0 and also updated the header-files package.
I get a clash from opkg:
Code:
Removing obsolete file /mod/include/sqlite3ext.h.
Removing obsolete file /mod/include/sqlite3.h.
Removing obsolete file /mod/include/mpfr.h.
Configuring header-files.
Collected errors:
* check_data_file_clashes: Package sqlite3 wants to install file /mod/include/sqlite3ext.h
    But that file is already provided by package  * header-files
* check_data_file_clashes: Package sqlite3 wants to install file /mod/include/sqlite3.h
    But that file is already provided by package  * header-files
and the two header files mentioned are no longer on the system.
A force reinstall of sqlite3 is necessary to resolve this.

I wonder if later versions of opkg fix this bug?
 
OP
OP
prpr

prpr

Well-Known Member
#7
Just compiled 3.22.0 and tested it on one of my 'standard' Sudoku puzzles.
3.15.1 did it in 2m14s
3.22.0 did it in 42s
Astounded, so I repeated it and got similar results.
Obviously other operations aren't going to benefit anything like as much but probably still worth having.
Oh, and the shell does command completion now, since 3.20, which is nice!