In message <1279395948-25864-1-git-send-email...@denx.de> I wrote: > > The following patch series adds some utilities (qsort and hash table > based database functions) and uses these to reimplement the code used > for the internal handling of environment variables. > > > Motivation: > > * Old environment code used a pessimizing implementation: > - variable lookup used linear search => slow > - changed/added variables were added at the end, i. e. most > frequently used variables had the slowest access times => slow > - each setenv() would calculate the CRC32 checksum over the whole > environment block => slow
Just to give a datapoint for speed: measured on TQM5200 (MPC5200 at 400 MHz, environment size 16 kB): OLD implementation: => sete ttt 'date;for i in 0 1 2 3 4 5 6 7 8 9 ; do for j in 0 1 2 3 4 5 6 7 8 9 ; do for k in 0 1 2 3 4 5 6 7 8 9 ; do run tt ; done ; done ; done;date' => sete tt 'sete var1 xxx;sete var2 ${var1};sete var1 ${var2};sete var1;sete var2' => run tt => run ttt Date: 1910-07-17 (unknown day) Time: 22:02:31 Date: 1910-07-17 (unknown day) Time: 22:03:27 New implementation: => run ttt Date: 1910-07-17 (unknown day) Time: 20:45:51 Date: 1910-07-17 (unknown day) Time: 20:45:53 I. e. we have 56 versus 2 seconds. I haven't run intensive tests, but in general I think we can see that scripts referncing environment variables will typically run faster by a factor of 10, or more. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de Time is an illusion perpetrated by the manufacturers of space. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot