From f2e75976772b6a1d52a2c71ec1eecb4b338ed632 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Sun, 16 Apr 2017 09:51:34 +0200 Subject: Replace slow binary comprehensions Which appears to be about an order of magnitude slower than just creating a binary of the desired size. --- lib/diameter/include/diameter_gen.hrl | 3 ++- lib/diameter/test/diameter_codec_test.erl | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/diameter/include/diameter_gen.hrl b/lib/diameter/include/diameter_gen.hrl index 09af829259..f8d6cbde89 100644 --- a/lib/diameter/include/diameter_gen.hrl +++ b/lib/diameter/include/diameter_gen.hrl @@ -723,7 +723,8 @@ z('AVP') -> <<0:64/integer>>; %% minimal header z(Name) -> Bin = diameter_codec:pack_avp(avp_header(Name), empty_value(Name)), - << <<0>> || <<_>> <= Bin >>. + Sz = size(Bin), + <<0:Sz/unit:8>>. %% --------------------------------------------------------------------------- %% # empty/1 diff --git a/lib/diameter/test/diameter_codec_test.erl b/lib/diameter/test/diameter_codec_test.erl index 869797f11f..d8b7377c0c 100644 --- a/lib/diameter/test/diameter_codec_test.erl +++ b/lib/diameter/test/diameter_codec_test.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2010-2016. All Rights Reserved. +%% Copyright Ericsson AB 2010-2017. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -280,7 +280,8 @@ d(F, Eq, V) -> end. z(B) -> - << <<0>> || <<_>> <= B >>. + Sz = size(B), + <<0:Sz/unit:8>>. %% values/1 %% -- cgit v1.2.3