binary optimization in couch_file
---------------------------------
Key: COUCHDB-1130
URL: https://issues.apache.org/jira/browse/COUCHDB-1130
Project: CouchDB
Issue Type: Improvement
Components: Database Core
Affects Versions: 1.0.2
Reporter: Randall Leeds
Priority: Minor
Attachments:
0001-refactor-remove_block_prefixes-2-for-optimization.patch
I've had this patch sitting around since January and kept forgetting to file
the ticket. Hurray spring cleaning.
Just for fun I ran erlc with +bin_opt_info, which gives information about how
the Erlang VM can optimize creating binary objects.
What follows is the commit message from my patch.
Even if I'm wrong about the last point, it can't hurt.
What think you all?
-------------------
Running erlc with +bin_opt_info gives an INFO message stating that "matching
anything else but a plain variable to the left of a binary pattern will prevent
delayed sub binary optimization; SUGGEST changing argument order"
I guess matching 0 is triggering this. If I understand correctly, this change
will allow the compiler to skip creating a sub-binary that starts at the block
boundary in the third clause and delay creation until we strip the leading byte
in the 0 clause. This means one less 1-byte binary every time we read across a
block boundary.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira