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