Age | Commit message (Collapse) | Author | |
---|---|---|---|
2011-12-09 | JInterface: improve OtpOutputStream buffer allocation | Nico Kruber | |
Previously, the buffer was increased linearly by 2048 bytes. I now propose to use an exponential increase function (similar to Javas ArrayList, e.g. always at least +50%). This significantly increases performance of e.g. doRPC for large parameters as the following comparison illustrates (shown is the buffer size after each time, the buffer has reached its limit): n n*2048 (n*3)/2+1 (n*3)/2+1 (at least +2048) 1 2,048 2,048 2,048 2 4,096 3,073 4,096 3 6,144 4,610 6,145 4 8,192 6,916 9,218 5 10,240 10,375 13,828 6 12,288 15,563 20,743 7 14,336 23,345 31,115 8 16,384 35,018 46,673 9 18,432 52,528 70,010 10 20,480 78,793 105,016 11 22,528 118,190 157,525 12 24,576 177,286 236,288 13 26,624 265,930 354,433 14 28,672 398,896 531,650 15 30,720 598,345 797,476 16 32,768 897,518 1,196,215 17 34,816 1,346,278 1,794,323 18 36,864 2,019,418 2,691,485 19 38,912 3,029,128 4,037,228 20 40,960 4,543,693 6,055,843 21 43,008 6,815,540 9,083,765 22 45,056 10,223,311 13,625,648 23 47,104 15,334,967 20,438,473 24 49,152 23,002,451 30,657,710 25 51,200 34,503,677 45,986,566 26 53,248 51,755,516 68,979,850 27 55,296 77,633,275 103,469,776 28 57,344 116,449,913 155,204,665 29 59,392 174,674,870 232,806,998 30 61,440 262,012,306 349,210,498 Actually, ArrayList uses the (n*3)/2+1 strategy. In order not to decrease performance for messages <10k, we could keep the (public) OtpOutputStream#defaultIncrement constant and let the buffer always increase by at least this much (third column). In order to create a buffer of 1MB, now only 16 array copies are needed vs. (1024*1024/2048)=512 array copies for the linear increase function. If a user sends a message of 10MB size, this is 22 vs. 5120 copies. NOTE: the meaning of the "public static final int defaultIncrement" member has changed a bit with this implementation (API compatibility?) - why was this public in the first place? | |||
2011-12-09 | Merge branch 'raimo/64-bit-driver-api/OTP-9795' | Björn Gustavsson | |
* raimo/64-bit-driver-api/OTP-9795: (22 commits) driver_SUITE.erl: Fix sys info drivers emulator test drivers: Conform to updated driver API runtime_tools's drivers: Conform to updated driver API ws's xwe_driver.c: Conform to updated driver API megaco's flex scanner: Conform to updated driver API seq_trace_SUITE_data/echo_drv.c: Conform to updated driver API erl_interface tests: Conform port_call_drv.c updated driver API erl_drv_thread_SUITE_data/testcase_driver.c: Conform to updated driver API float_SUITE_data/fp_drv.c: Conform to updated driver API port_SUITE_data/*_drv.c: Conform to updated driver API port_bif_SUITE_data/control_drv.c: Conform to updated driver API send_term_SUITE_data/send_term_drv.c: Conform to updated driver API system_profile_SUITE_data/echo_drv.c: Conform to updated driver API trace_port_SUITE_data/echo_drv.c: Conform to updated driver API Remove support for old drivers without ERL_DRV_EXTENDED_MARKER built-in drivers: Add ERL_DRV_EXTENDED_MARKER and version numbers Bump driver version to 2.0 erl_driver.h: Enlarge type on return value from call erl_driver.h: Enlarge types on driver callbacks output, control and call erl_driver.h: Enlarge types in driver output functions ... Conflicts: erts/emulator/test/driver_SUITE_data/monitor_drv.c erts/emulator/test/driver_SUITE_data/timer_drv.c | |||
2011-12-09 | Merge branch 'rc/mnesia_log-no-async' | Henrik Nord | |
* rc/mnesia_log-no-async: Use the synchronous log_terms instead of alog_terms in mnesia_log:ets2dcd() OTP-9804 | |||
2011-12-09 | runtime_tools's drivers: Conform to updated driver API | Björn Gustavsson | |
2011-12-09 | ws's xwe_driver.c: Conform to updated driver API | Björn Gustavsson | |
2011-12-09 | megaco's flex scanner: Conform to updated driver API | Björn Gustavsson | |
2011-12-09 | seq_trace_SUITE_data/echo_drv.c: Conform to updated driver API | Björn Gustavsson | |
2011-12-09 | erl_interface tests: Conform port_call_drv.c updated driver API | Björn Gustavsson | |
2011-12-09 | Merge branch 'bmk/megaco/make_flex_drv_r15_compat' | Micael Karlberg | |
2011-12-09 | Merge branch 'anders/diameter/suites_and_dialyzer/OTP-9781' | Anders Svensson | |
* anders/diameter/suites_and_dialyzer/OTP-9781: Tell dialyzer not to warn about unused functions Add compiler testcases for generation and compilation to beam Fix semantic checks on AVP qualifiers Minor codegen/debug fix Deal with crypto:start() failure in TLS suite Don't assume empty sndrcvinfo in diameter_sctp | |||
2011-12-09 | Merge branch 'bjorn/inviso/deprecate/OTP-9798' | Björn Gustavsson | |
* bjorn/inviso/deprecate/OTP-9798: Deprecate the inviso application | |||
2011-12-09 | Merge branch 'ia/public_key/test-maint' | Ingela Anderton Andin | |
* ia/public_key/test-maint: Converted pk12 test suite files to pem and adjusted our framework to deal with changes to the pkits suite. | |||
2011-12-09 | Converted pk12 test suite files to pem and adjusted our framework | Ingela Anderton Andin | |
to deal with changes to the pkits suite. | |||
2011-12-09 | Merge branch 'siri/stdlib/improve-supervisor-SUITE/OTP-9797' | Siri Hansen | |
* siri/stdlib/improve-supervisor-SUITE/OTP-9797: Change supervisor_SUITE to pure common test style | |||
2011-12-09 | Merge branch 'ia/ssh/behaviour/OTP-9796' | Ingela Anderton Andin | |
* ia/ssh/behaviour/OTP-9796: Use new directive "-callback" and prepare version and appup for release | |||
2011-12-09 | Merge branch 'hb/hipe/unify_optimization/OTP-9768' | Hans Bolinder | |
* hb/hipe/unify_optimization/OTP-9768: Optimize erl_types:t_unify() | |||
2011-12-09 | Merge branch 'hb/dialyzer/dataflow_optimization/OTP-9761' | Hans Bolinder | |
* hb/dialyzer/dataflow_optimization/OTP-9761: Optimize join_maps() in dialyzer_dataflow | |||
2011-12-08 | Merge branch 'pan/space_in_filename/OTP-9598' | Patrik Nyblom | |
* pan/space_in_filename/OTP-9598: Teach os_SUITE:space_in_name to quote correctly on Windows | |||
2011-12-08 | Merge branch 'pan/win_trace_inherit_handle/OTP-9658' | Patrik Nyblom | |
* pan/win_trace_inherit_handle/OTP-9658: Remove compiler warnings and ancient VXWORKS code Avoid inheriting trace file handles to child processes | |||
2011-12-08 | inet_res_SUITE: Improve nameserver handling | Raimo Niskanen | |
2011-12-08 | Merge branch 'lukas/bugs_and_tc_fixes' | Lukas Larsson | |
* lukas/bugs_and_tc_fixes: Fix test_server test makefile for windows Only step pointer arity steps Link with LIBS after ETHR_LIBS Save +M<S>t data as true or false, not the number Return true/false instead of num for +M<S>t info Return correct format for info about sys_alloc Add explanatory text for tc failure OTP-9800 | |||
2011-12-08 | Fix test_server test makefile for windows | Lukas Larsson | |
2011-12-08 | Only step pointer arity steps | Lukas Larsson | |
Don't know why the 1 was there, it does however cause the buffer to overflow when decoding the atoms from rex. OTP-9799 | |||
2011-12-08 | Save +M<S>t data as true or false, not the number | Lukas Larsson | |
OTP-7775 | |||
2011-12-08 | Merge branch 'ta/sendfile/OTP-9240' | Lukas Larsson | |
* ta/sendfile/OTP-9240: Do not use async threads on DARWIN Fix cleanup when sendfile process crashes Return {error,closed} from sendfile if closed Do not use SFV_NOWAIT as it does not exist on all solaris Clarify some code comments Make solaris use sendfilev | |||
2011-12-08 | Fix cleanup when sendfile process crashes | Lukas Larsson | |
When sendfile crashes during a send there should be no error_logger printouts about stolen fds. | |||
2011-12-08 | Merge branch 'egil/file-info-opt-utc/OTP-7687' | Björn-Egil Dahlberg | |
* egil/file-info-opt-utc/OTP-7687: (39 commits) Remove time_t specific test in prim_file_SUITE Update prim_file.beam and prim_zip.beam Add types for posixtime_to_universaltime and the reverse Set BASEYEAR to 1902 Set lower limit of years handled to 1601 Emulate localtime, gmtime and mktime to enable negative time_t Document file:*_file_info/2 Fix compiler warning in unix_efile.c Change name of bif universaltime_to_seconds/1 Change options to prim_file:*_file_info/* Remove dead code Catch errors from prim_file:*_file_info Testcase for utc <-> seconds conversion Fix negative time in seconds_to_universaltime/1 Remove OS taint from datetime conversion Add utc <-> seconds conversions bifs Let prim_file validate ctime in file_info Teach #file_info spec unix epochs for file times Add file_info_opt tests in prim_file_SUITE unix_efile: Zero is a valid number in utime ... Conflicts: erts/emulator/beam/erl_time_sup.c erts/emulator/sys/win32/erl_win_sys.h erts/emulator/sys/win32/sys_time.c | |||
2011-12-08 | Remove time_t specific test in prim_file_SUITE | Björn-Egil Dahlberg | |
Remove time_t = Sint64 | Uint32 testcase only. The year 2040 does not exist on Sint32. | |||
2011-12-08 | Deprecate the inviso application | Björn Gustavsson | |
2011-12-08 | Optimize join_maps() in dialyzer_dataflow | Hans Bolinder | |
By keeping tracks of modified types the joining of maps ha become significantly faster. | |||
2011-12-08 | Add types for posixtime_to_universaltime and the reverse | Patrik Nyblom | |
2011-12-08 | Document file:*_file_info/2 | Björn-Egil Dahlberg | |
* file:read_file_info/2 * file:write_file_info/3 Document options and time behavior. | |||
2011-12-08 | Change options to prim_file:*_file_info/* | Björn-Egil Dahlberg | |
* 'utc' changed to 'universal' * 'epoch' changed to 'posix' This change conforms to other naming already in OTP, e.g. erlang:universaltime_to_localtime/1. | |||
2011-12-08 | Remove dead code | Björn-Egil Dahlberg | |
2011-12-08 | Teach #file_info spec unix epochs for file times | Björn-Egil Dahlberg | |
2011-12-08 | Add file_info_opt tests in prim_file_SUITE | Björn-Egil Dahlberg | |
2011-12-08 | Optimize erl_types:t_unify() | Hans Bolinder | |
Using a list rather than a dict() for unified variables saves quite some time. In particular Dialyzer is a heavy user of t_unify(). | |||
2011-12-08 | Add explanatory text for tc failure | Lukas Larsson | |
2011-12-08 | Change supervisor_SUITE to pure common test style | Siri Hansen | |
Also, some minor debug help is added to a test case which fails every now and then. | |||
2011-12-08 | Use new directive "-callback" and prepare version and appup for release | Ingela Anderton Andin | |
2011-12-08 | Tell dialyzer not to warn about unused functions | Anders Svensson | |
Depending on the dictionary, generated dictionary modules may contain unused functions included from diameter_gen.hrl. There may still be warnings however since even used functions can contain code that isn't reached for a given dictionary. It would be useful for diameter to generate spec attributes for a dictionary's generated records but the format of these is currently undocumented. | |||
2011-12-08 | Add compiler testcases for generation and compilation to beam | Anders Svensson | |
2011-12-08 | Fix semantic checks on AVP qualifiers | Anders Svensson | |
Didn't quite interpret '*' as RFC 3588 dictates. In particular, the interpretation depends on what's being qualified, a required, optional or fixed AVP. | |||
2011-12-08 | Minor codegen/debug fix | Anders Svensson | |
Writing a dictionary to file failed. | |||
2011-12-07 | Return {error,closed} from sendfile if closed | Lukas Larsson | |
If the socket is closed by the remote end, sendfile now returns {error,closed}. | |||
2011-12-07 | Deal with crypto:start() failure in TLS suite | Anders Svensson | |
2011-12-07 | Added ticket number. | Micael Karlberg | |
OTP-9795 | |||
2011-12-07 | Merge branch 'anders/diameter/suites_and_dialyzer/OTP-9781' | Anders Svensson | |
* anders/diameter/suites_and_dialyzer/OTP-9781: Minor diameter_dict_scanner fix Skip sctp tests on {error, esocktnosupport} Ensure that TLS will be available in TLS suite | |||
2011-12-07 | Merge branch 'anders/diameter/callback_redirection/OTP-9777' | Anders Svensson | |
* anders/diameter/callback_redirection/OTP-9777: Update documentation Use diameter_callback in relay and tls suites Use diameter_callback in failover suite Update app suite Smarter diameter_callback | |||
2011-12-07 | Merge branch 'anders/diameter/dict_error_identification/OTP-9639' | Anders Svensson | |
* anders/diameter/dict_error_identification/OTP-9639: (27 commits) Update documentation Improve base_rfc3588.dia formatting Make typo fix backwards compatible Fix base_rfc3588.dia typo Check compiler dependencies in app suite Move type definitions into diameter.erl Fix interpretation of vendor id in @grouped Add range checks on dictionary integers Don't explicitly load inherited modules Tweak diameter_make interface Add format testcase to compiler suite Add diameter_dict_util:format/1 for reconstructing a dictionary file Make diameter_types usable with @codecs Minor codegen tweaks Remove unnecessary includes Add compiler suite Update app suite Update codec suite Vendor id fixes No longer inherit common dictionary in relay dictionary ... |