Dave Cottlehuber created COUCHDB-1897:
-----------------------------------------

             Summary: optimise binary 
                 Key: COUCHDB-1897
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1897
             Project: CouchDB
          Issue Type: Improvement
          Components: Database Core
            Reporter: Dave Cottlehuber


I decided to read up on 
http://www.erlang.org/doc/efficiency_guide/binaryhandling.html tonight & found 
this on `bin_opt_info`:

The erlang compiler can be coaxed into spitting out information on whether it 
can optimise binary usage, viz:

erlc +bin_opt_info thing.erl

or use
export ERLC_FLAGS=+bin_opt_info (how I generated the results below)
or alternatively:
export ERL_COMPILER_OPTIONS=bin_opt_info

Some of these may be worth the refactoring effort.

Full list below for reference.

src/couch_index_updater.erl:148: Warning: INFO: matching anything else but a 
plain variable to the left of binary pattern will prevent delayed sub binary 
optimization; SUGGEST changing argument order
src/couch_replicator_api_wrap.erl:240: Warning: INFO: matching anything else 
but a plain variable to the left of binary pattern will prevent delayed sub 
binary optimization; SUGGEST changing argument order
src/couch_replicator_utils.erl:205: Warning: INFO: the '=' operator will 
prevent delayed sub binary optimization
couch_compress.erl:70: Warning: INFO: the '=' operator will prevent delayed sub 
binary optimization
couch_compress.erl:82: Warning: INFO: using a matched out sub binary in a guard 
will prevent delayed sub binary optimization
couch_file.erl:436: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
couch_file.erl:486: Warning: INFO: matching anything else but a plain variable 
to the left of binary pattern will prevent delayed sub binary optimization; 
SUGGEST changing argument order
couch_httpd_db.erl:1211: Warning: INFO: using the original binary variable in a 
guard will prevent delayed sub binary optimization
couch_httpd_misc_handlers.erl:197: Warning: INFO: a variable to the left of the 
binary pattern is used in a guard; will prevent delayed sub binary optimization
couch_passwords.erl:103: Warning: INFO: using a matched out sub binary in a 
guard will prevent delayed sub binary optimization
couch_util.erl:109: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
couch_util.erl:385: Warning: INFO: using a matched out sub binary in a guard 
will prevent delayed sub binary optimization
couch_util.erl:426: Warning: INFO: using the original binary variable in a 
guard will prevent delayed sub binary optimization
couch_db_updater.erl:657: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
json_stream_parse.erl:179: Warning: INFO: the '=' operator will prevent delayed 
sub binary optimization
json_stream_parse.erl:334: Warning: INFO: the '=' operator will prevent delayed 
sub binary optimization
json_stream_parse.erl:356: Warning: INFO: the '=' operator will prevent delayed 
sub binary optimization
json_stream_parse.erl:379: Warning: INFO: the '=' operator will prevent delayed 
sub binary optimization
mochijson2.erl:377: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:391: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:413: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:471: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:478: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:485: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:492: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:501: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:510: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:517: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:522: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:530: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
oauth.erl:157: Warning: INFO: using a matched out sub binary in a guard will 
prevent delayed sub binary optimization
ibrowse_http_client.erl:1509: Warning: INFO: using a matched out sub binary 
will prevent delayed sub binary optimization
ibrowse_http_client.erl:1544: Warning: INFO: using a matched out sub binary 
will prevent delayed sub binary optimization
mochijson2.erl:395: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:409: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:431: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:489: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:496: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:503: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:510: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:519: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:528: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:535: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:540: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochijson2.erl:548: Warning: INFO: using a matched out sub binary will prevent 
delayed sub binary optimization
mochiweb_html.erl:300: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:451: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:471: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:483: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:494: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:505: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:518: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:531: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:551: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:568: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:599: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:627: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:652: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:661: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:677: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:689: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:705: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:721: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_html.erl:744: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_multipart.erl:186: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_multipart.erl:262: Warning: INFO: using a matched out sub binary will 
prevent delayed sub binary optimization
mochiweb_multipart.erl:279: Warning: INFO: using the original binary variable 
in a guard will prevent delayed sub binary optimization


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to