aboutsummaryrefslogtreecommitdiffstats
path: root/system/doc/efficiency_guide
AgeCommit message (Collapse)Author
2017-04-27stdlib: Improve the Erlang shell's handling of referencesHans Bolinder
As of Erlang/OTP 20.0, the type of ETS tables, ets:tid(), is a reference(). A request was put forward that the Erlang shell should be able to handle references in its input. This commit introduces an extended parser in module lib. It can parse pids, ports, references, and external funs under the condition that they can be created in the running system. The parser is meant to be used internally in Erlang/OTP. The alternative, to extend erl_scan and erl_parse, was deemed inferior as it would require the abstract format be able to represent pids, ports, references, and funs, which would be confusing as they are not expressions as such, but data types.
2017-03-10retired_myths.xml: Move marker to adhere to DTDBjörn Gustavsson
2017-02-14Fixed typos in system/docAndrew Dryga
2017-01-25Merge branch 'egil/percept/remove-application/OTP-14163'Björn-Egil Dahlberg
* egil/percept/remove-application/OTP-14163: ssl: Remove percept from benchmark otp: Don't mention percept in documentation runtime_tools: Remove percept percept: Remove application
2017-01-20otp: Don't mention percept in documentationBjörn-Egil Dahlberg
2017-01-10Remove mention of R12BBjörn Gustavsson
Also don't say that there are no plans to make sharing-preserving copying default; it has been seriously suggested.
2017-01-10Fix a typo in functions.xmlBjörn Gustavsson
2017-01-10Modernize section about list handling and list comprehensionsBjörn Gustavsson
2017-01-10Remove comparisons of binary handling between R11B and R12BBjörn Gustavsson
Shorten the text by removing superfluous details about how binary handling was different in R11B.
2017-01-10Don't mention "tuple funs" at allBjörn Gustavsson
"Tuples funs" was removed a long time ago. There is no need to even mention them.
2017-01-10Don't call byte_size/1 and tuple_size/1 "new"Björn Gustavsson
2017-01-10Remove paragraph mentioning improvements in R12BBjörn Gustavsson
2016-12-20Merge branch 'maint'Sverker Eriksson
2016-12-20erts: Correct memory footprint for mapsSverker Eriksson
Small map was wrong as we should include our own top Eterm and exclude them for keys and values. Large maps was wrong as it described the theoretical minimum of a full tree, which does not happen in reality.
2016-12-19Extend the text for "_" mythBjörn Gustavsson
Thanks to Joe Armstrong for the suggestion.
2016-12-19Shorten the tail-recursion mythBjörn Gustavsson
The myth about tail recursion being faster than body recursion still seems to be alive, but we don't need to spend that much space discussing it as we needed earlier. Shorten the discussion and include a link to to Fred Hebert's excellent blog post.
2016-12-15Add a myth about NIFsBjörn Gustavsson
Thanks to Max Lapshin for suggesting this myth.
2016-12-15Retire two mythsBjörn Gustavsson
2016-09-01doc: Correct errors introduced by Editorial changesHans Bolinder
Fix some older errors as well.
2016-05-25doc: Update version of erts and otp releaseBjörn-Egil Dahlberg
2016-05-23doc: Update process memory initial sizeBjörn-Egil Dahlberg
2016-05-20doc: Update efficiency guide with Maps memory infoBjörn-Egil Dahlberg
2016-03-15update copyright-yearHenrik Nord
2015-09-09Very minor fixes to binary handling documentationPéter Gömöri
- at appending when allocating new binary object its size will be double (the old size + size of data to be appended) not just double the old size - correct some unused byte counts
2015-06-18Change license text to APLv2Bruce Yinhe
2015-05-27Update compiler documentationBjörn Gustavsson
Language cleaned up by the technical writer tmanevik from Combitech. Proofreading and corrections by Björn Gustavsson.
2015-03-20Merge branch 'rickard/time_api/OTP-11997'Rickard Green
* rickard/time_api/OTP-11997: (22 commits) Update primary bootstrap inets: Suppress deprecated warning on erlang:now/0 inets: Cleanup of multiple copies of functions Add inets_lib with common functions used by multiple modules inets: Update comments Suppress deprecated warning on erlang:now/0 Use new time API and be back-compatible in inets Remove unused functions and removed redundant test asn1 test SUITE: Eliminate use of now/0 Disable deprecated warning on erlang:now/0 in diameter_lib Use new time API and be back-compatible in ssh Replace all calls to now/0 in CT with new time API functions test_server: Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API otp_SUITE: Warn for calls to erlang:now/0 Replace usage of erlang:now() with usage of new API Multiple timer wheels Erlang based BIF timer implementation for scalability Implement ethread events with timeout ... Conflicts: bootstrap/bin/start.boot bootstrap/bin/start_clean.boot bootstrap/lib/compiler/ebin/beam_asm.beam bootstrap/lib/compiler/ebin/compile.beam bootstrap/lib/kernel/ebin/auth.beam bootstrap/lib/kernel/ebin/dist_util.beam bootstrap/lib/kernel/ebin/global.beam bootstrap/lib/kernel/ebin/hipe_unified_loader.beam bootstrap/lib/kernel/ebin/inet_db.beam bootstrap/lib/kernel/ebin/inet_dns.beam bootstrap/lib/kernel/ebin/inet_res.beam bootstrap/lib/kernel/ebin/os.beam bootstrap/lib/kernel/ebin/pg2.beam bootstrap/lib/stdlib/ebin/dets.beam bootstrap/lib/stdlib/ebin/dets_utils.beam bootstrap/lib/stdlib/ebin/erl_tar.beam bootstrap/lib/stdlib/ebin/escript.beam bootstrap/lib/stdlib/ebin/file_sorter.beam bootstrap/lib/stdlib/ebin/otp_internal.beam bootstrap/lib/stdlib/ebin/qlc.beam bootstrap/lib/stdlib/ebin/random.beam bootstrap/lib/stdlib/ebin/supervisor.beam bootstrap/lib/stdlib/ebin/timer.beam erts/aclocal.m4 erts/emulator/beam/bif.c erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_db_hash.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_thr_progress.c erts/emulator/beam/utils.c erts/emulator/sys/unix/sys.c erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/init.beam erts/preloaded/src/erts_internal.erl lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl lib/diameter/src/base/diameter_lib.erl lib/kernel/src/os.erl lib/ssh/test/ssh_basic_SUITE.erl system/doc/efficiency_guide/advanced.xml
2015-03-20Introduce a new time APIRickard Green
The old time API is based on erlang:now/0. The major issue with erlang:now/0 is that it was intended to be used for so many unrelated things. This tied these unrelated operations together and unnecessarily caused performance, scalability as well as accuracy, and precision issues for operations that do not need to have such issues. The new API spreads different functionality over multiple functions in order to improve on this. The new API consists of a number of new BIFs: - erlang:convert_time_unit/3 - erlang:monotonic_time/0 - erlang:monotonic_time/1 - erlang:system_time/0 - erlang:system_time/1 - erlang:time_offset/0 - erlang:time_offset/1 - erlang:timestamp/0 - erlang:unique_integer/0 - erlang:unique_integer/1 - os:system_time/0 - os:system_time/1 and a number of extensions of existing BIFs: - erlang:monitor(time_offset, clock_service) - erlang:system_flag(time_offset, finalize) - erlang:system_info(os_monotonic_time_source) - erlang:system_info(time_offset) - erlang:system_info(time_warp_mode) - erlang:system_info(time_correction) - erlang:system_info(start_time) See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
2015-03-12Update Efficiency GuideBjörn Gustavsson
Language cleaned up by the technical writers xsipewe and tmanevik from Combitech. Proofreading and corrections by Björn Gustavsson.
2014-11-20Fix spelling and grammarDerek Brown
2014-11-03fix small typo in processes.xmlEvgeny M
kilo_byte() -> is kilo_byte/0 not kilo_byte/1
2014-09-04Merge branch 'sverk/nif-inspect-copy-bug/OTP-9828' into maintSverker Eriksson
* sverk/nif-inspect-copy-bug/OTP-9828: erts: Fix bug with enif_make_copy reallocating writable binary Conflicts: erts/emulator/test/nif_SUITE.erl
2014-09-03erts: Fix bug with enif_make_copy reallocating writable binarySverker Eriksson
that could invalidate a pointer received from an earlier call to enif_inspect_binary. Solution: Emasculate writable binary at enif_inspect_binary. There are room for optimizations here as we now do an unconditional emasculation even though enif_make_copy is not called later in the NIF.
2014-06-20Fix typo in Advanced chapterSlava Yurin
2013-04-19Convert XML files to UTF-8Hans Bolinder
2013-04-08Remove unused Postscript filesHans Bolinder
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2012-12-07Merge branch 'rickard/port-optimizations/OTP-10336' into ↵Rickard Green
rickard/r16/port-optimizations/OTP-10336 * rickard/port-optimizations/OTP-10336: Change annotate level for emacs-22 in cerl Update etp-commands Add documentation on communication in Erlang Add support for busy port message queue Add driver callback epilogue Implement true asynchronous signaling between processes and ports Add erl_drv_[send|output]_term Move busy port flag Use rwlock for driver list Optimize management of port tasks Improve configuration of process and port tables Remove R9 compatibility features Use ptab functionality also for ports Prepare for use of ptab functionality also for ports Atomic port state Generalize process table implementation Implement functionality for delaying thread progress from unmanaged threads Conflicts: erts/doc/src/erl_driver.xml erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/beam_bp.c erts/emulator/beam/beam_emu.c erts/emulator/beam/bif.c erts/emulator/beam/copy.c erts/emulator/beam/erl_alloc.c erts/emulator/beam/erl_alloc.types erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_bif_port.c erts/emulator/beam/erl_bif_trace.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_message.c erts/emulator/beam/erl_port_task.c erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process_lock.c erts/emulator/beam/erl_trace.c erts/emulator/beam/export.h erts/emulator/beam/global.h erts/emulator/beam/io.c erts/emulator/sys/unix/sys.c erts/emulator/sys/vxworks/sys.c erts/emulator/test/port_SUITE.erl erts/etc/unix/cerl.src erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/prim_inet.beam erts/preloaded/src/prim_inet.erl lib/hipe/cerl/erl_bif_types.erl lib/kernel/doc/src/inet.xml lib/kernel/src/inet.erl
2012-12-03Add erl_drv_[send|output]_termRickard Green
2012-12-03Improve configuration of process and port tablesRickard Green
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-02-28Remove/add extra/missing white spacesRicardo Catalinas Jiménez
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-11-24Merge branch 'bjorn/remove-regexp-module/OTP-9737'Björn Gustavsson
* bjorn/remove-regexp-module/OTP-9737: stdlib: Remove the deprecated regexp module
2011-10-27stdlib: Remove the deprecated regexp moduleBjörn Gustavsson
2011-10-27Remove unused */doc/src/make.dep filesBjörn Gustavsson
These dependency files was once used when building the documentation, but are no longer needed.
2011-10-24otp: Update profiling doc with eprofBjörn-Egil Dahlberg
2011-09-21system documentation: Support parallel makeBjörn Gustavsson