Skip to content

Releases: darkjacky/gm_binarytable

v1.09

31 Jan 17:25
6cf9d29
Compare
Choose a tag to compare

Support for Color tables. It will now use 5 bytes. 1 for the type and then r g b a. (Instead of thinking it is a table then having 1 table byte then 4 bytes per color.)

I edited the testing script to always produce the same output. I also added colors and a check if the program works correctly. You can't really compare the current script to the older one nor the result.

It took util.TableToJSON an average of 0.11532600
It took util.JSONToTable an average of 0.10075724
It took TableToBinary an average of 0.00530151
It took BinaryToTable an average of 0.00763879
TableToBinary without CRC is 21.75 faster than util.TableToJSON
BinaryToTable without CRC is 13.19 faster than util.JSONToTable
TableToBinary with CRC is 17.16 faster than util.TableToJSON
BinaryToTable with CRC is 10.01 faster than util.JSONToTable
TableToBinary produced an output of 839878 Byte
util.TableToJSON produced an output of 1500001 Byte

v1.08

30 Jan 19:55
81fb0de
Compare
Choose a tag to compare

This one stops copying and uses offsets more allowing us to skip some memory management.
There seems to be a boost in performance.

It took util.TableToJSON an average of  0.08212233
It took util.JSONToTable an average of  0.07073275
It took TableToBinary an average of     0.0039290299999999
It took BinaryToTable an average of     0.00468537
TableToBinary is 20.90 faster than util.TableToJSON
BinaryToTable is 15.10 faster than util.JSONToTable
TableToBinary with CRC is 15.58 faster than util.TableToJSON
BinaryToTable with CRC is 9.66 faster than util.JSONToTable
TableToBinary produced an output of     859878
util.TableToJSON produced an output of  1060264

V1.07

07 Dec 14:29
d0e004e
Compare
Choose a tag to compare

Somehow somewhere something broke and heres a fix. I hope...
We use memmove now as its quicker in specific areas like this one.

It took util.TableToJSON an average of  0.07521336
It took util.JSONToTable an average of  0.0612218
It took TableToBinary an average of     0.0037361600000001
It took BinaryToTable an average of     0.00485487
TableToBinary is 20.13 faster than util.TableToJSON
BinaryToTable is 12.61 faster than util.JSONToTable
TableToBinary with CRC is 12.98 faster than util.TableToJSON
BinaryToTable with CRC is 8.41 faster than util.JSONToTable
TableToBinary produced an output of     859878
util.TableToJSON produced an output of  1059828

V1.05: Pretty huge bump in performance

07 Sep 23:59
97c3292
Compare
Choose a tag to compare
How did it get even quicker

Less variables less copying. T functions will compile multiple times for each variable that gets pushed. Abuse this to create functions with less variables.

32bit:
TableToBinary is 20.33 faster than util.TableToJSON
BinaryToTable is 8.12 faster than util.JSONToTable

V1.04: Release 64 bit

31 Jul 16:08
78165b7
Compare
Choose a tag to compare

Essentially nothing changed. Though size_t is not compatible with unsigned int in x64.

v1.03: Add second arg

13 Dec 19:34
Compare
Choose a tag to compare
Added TableToBinary(tab, true). The true will cause TableToBinary to read as sequential table even if it is not.
Passing true will result in a smaller return string as it will not write index keys to file. It will also increase the speed on average to 23x compared to util.TableToJSON.
There is no guarantee the table will be correct however. Any non sequential input in it will cause it to count wrong.
It also assumes every sub table is sequential as well.

This change will not affect BinaryToTable.

V1.02: Slight performance improvement

11 Dec 22:52
Compare
Choose a tag to compare
Improve performance slightly ~13x on both read and write when compared to JSON
Reusing a char array increases performance drastically however the overall speed only increases slightly.

v1.01 removal of stringstream

09 Dec 13:50
e18130f
Compare
Choose a tag to compare
remove requirement of stringstream

This seems to have increased the speed drastically
Transforming a table with 100000 x { 1, 256, 65536, math.Rand(0, 1), VectorRand(), AngleRand(), "checking checking" }
0.1172683        TableToBinary
1.4816783        util.TableToJSON
0.1305416        BinaryToTable
0.7409233        util.JSONToTable

V1.0 Initial release

08 Dec 20:43
Compare
Choose a tag to compare