aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/src/xref_utils.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2016-04-26 14:31:42 +0200
committerHans Bolinder <[email protected]>2016-06-10 09:50:02 +0200
commit1b336f995d930d6542e67310b72d855e3571523f (patch)
treeca80ca5766a15fb5e67dd97ac4ada3e3ace92c86 /lib/tools/src/xref_utils.erl
parent7979f72ce15ec5eeb8e0e9cfc1c291f10c4f0432 (diff)
downloadotp-1b336f995d930d6542e67310b72d855e3571523f.tar.gz
otp-1b336f995d930d6542e67310b72d855e3571523f.tar.bz2
otp-1b336f995d930d6542e67310b72d855e3571523f.zip
tools: Optimize adding multiple modules to an Xref server
Extracting data from debug info in BEAM files is parallelized. The speed-up is not outstanding. If memory is not an issue, adding `{spawn_opt, [{min_heap_size, <large number>}]}' to the option list of xref:start/2 can make a (small) difference. Reading of modules from a directory is parallelized. Attempts to parallelize all modules when adding a release have been rejected since the gain showed to be small compared to the increased complexity of the code. Using a process for coordinating the reading has not been attempted.
Diffstat (limited to 'lib/tools/src/xref_utils.erl')
-rw-r--r--lib/tools/src/xref_utils.erl8
1 files changed, 0 insertions, 8 deletions
diff --git a/lib/tools/src/xref_utils.erl b/lib/tools/src/xref_utils.erl
index f69aa70244..b0c168e018 100644
--- a/lib/tools/src/xref_utils.erl
+++ b/lib/tools/src/xref_utils.erl
@@ -47,8 +47,6 @@
-export([options/2]).
--export([subprocess/2]).
-
-export([format_error/1]).
-import(lists, [append/1, delete/2, filter/2, foldl/3, foreach/2,
@@ -512,12 +510,6 @@ find_beam(Culprit) ->
options(Options, Valid) ->
split_options(Options, [], [], [], Valid).
-subprocess(Fun, Opts) ->
- Pid = spawn_opt(Fun, Opts),
- receive
- {Pid, Reply} -> Reply
- end.
-
format_error({error, Module, Error}) ->
Module:format_error(Error);
format_error({file_error, FileName, Reason}) ->