~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to lib/megaco/examples/meas/megaco_codec_meas.erl

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
 
42
42
%% API
43
43
-export([t/0, t1/0, t/1]).
44
 
-export([e/0]).
 
44
-export([te/0,
 
45
         tb/0, tbb/0, tbp/0,
 
46
         tt/0, ttp/0, ttc/0]).
45
47
 
46
48
%% Internal exports
47
49
-export([do_measure_codec/7, do_measure_codec_loop/7]).
50
52
 
51
53
-include_lib("kernel/include/file.hrl").
52
54
 
 
55
-define(V3, prev3c).
53
56
 
54
57
-define(MEASURE_TIMEOUT, 100000).
55
58
 
77
80
t() ->
78
81
    t(?MEASURE_CODECS).
79
82
 
80
 
e() ->
 
83
te() ->
81
84
    t([erlang]).
82
85
 
 
86
tb() ->
 
87
    t([ber, per]).
 
88
 
 
89
tbb() ->
 
90
    t([ber]).
 
91
 
 
92
tbp() ->
 
93
    t([per]).
 
94
 
 
95
tt() ->
 
96
    t([pretty, compact]).
 
97
 
 
98
ttp() ->
 
99
    t([pretty]).
 
100
 
 
101
ttc() ->
 
102
    t([compact]).
 
103
 
 
104
 
83
105
%% Dirs is a list of directories containing files,
84
106
%% each with a single megaco message. 
85
107
%%
96
118
    display_system_info(),
97
119
    display_app_info(),
98
120
    io:format("~n", []),
 
121
    Started = now(),
99
122
    EDirs = expand_dirs(Dirs, []),
100
123
    Results = t1(EDirs, []), 
 
124
    display_time(Started, now()),
101
125
    store_results(Results).
102
126
 
103
127
display_os_info() ->
147
171
    io:format("ASN.1 version:       ~s~n", [Vsn]).
148
172
 
149
173
 
150
 
    
 
174
%% {MegaSec, Sec, MicroSec}
 
175
display_time(Start, Fin) ->
 
176
    FormatDate1 = format_timestamp(Start),
 
177
    FormatDate2 = format_timestamp(Fin),
 
178
    FormatDiff  = format_diff(Start, Fin),
 
179
    io:format("Started:  ~s~n", [FormatDate1]),
 
180
    io:format("Finished: ~s~n", [FormatDate2]),
 
181
    io:format("          ~s~n~n~n", [FormatDiff]),
 
182
    ok.
 
183
    
 
184
format_timestamp({_N1, _N2, N3} = Now) ->
 
185
    {Date, Time}   = calendar:now_to_datetime(Now),
 
186
    {YYYY,MM,DD}   = Date,
 
187
    {Hour,Min,Sec} = Time,
 
188
    FormatDate =
 
189
        io_lib:format("~.4w:~.2.0w:~.2.0w ~.2.0w:~.2.0w:~.2.0w 4~w",
 
190
                      [YYYY,MM,DD,Hour,Min,Sec,round(N3/1000)]),
 
191
    lists:flatten(FormatDate).
 
192
  
 
193
format_diff(Start, Fin) ->
 
194
    DateTime1 = calendar:now_to_universal_time(Start),
 
195
    DateTime2 = calendar:now_to_universal_time(Fin),
 
196
    T1 = calendar:datetime_to_gregorian_seconds(DateTime1),
 
197
    T2 = calendar:datetime_to_gregorian_seconds(DateTime2),
 
198
    {_, Diff} = calendar:gregorian_seconds_to_datetime(T2 - T1),
 
199
    Tmp = 
 
200
        case Diff of
 
201
            {0, 0, S} ->
 
202
                io_lib:format("~.2.0w sec", [S]);
 
203
            {0, M, S} ->
 
204
                io_lib:format("~w min ~.2.0w sec", [M,S]);
 
205
            {H, M, S} ->
 
206
                io_lib:format("~w hour ~w min ~.2.0w sec", [H,M,S])
 
207
        end,
 
208
    lists:flatten(Tmp).
 
209
    
 
210
    
 
211
                              
151
212
t1([], Results) ->
152
213
    lists:reverse(Results);
153
214
t1([{Dir, Codec, Conf, _} = EDir|Dirs], Results) ->
166
227
measure({Dir, Codec, Conf, Count}) when list(Dir) ->
167
228
    io:format("measure using codec ~p ~p~n ", [Codec, Conf]),
168
229
    {Init, Conf1} = measure_init(Conf),
169
 
    Res = measure(Dir, Codec, Conf1, read_files(Dir), [], Count),
 
230
    Conf2 = [{version3,?V3}|Conf1],
 
231
    Res = measure(Dir, Codec, Conf2, read_files(Dir), [], Count),
170
232
    measure_fin(Init),
171
233
    Res.
172
234
 
231
293
    ok.
232
294
 
233
295
 
 
296
measure(_Dir, _Codec, _Conf, [], [], _MCount) ->
 
297
    {error, no_messages};
 
298
 
234
299
measure(_Dir, _Codec, _Conf, [], Res, _MCount) ->
235
300
 
236
301
    Eavg = avg([Etime/Ecnt || #stat{ecount = Ecnt, etime = Etime} <- Res]),
252
317
            measure(Dir, Codec, Conf, Files, [Stat | Results], MCount);
253
318
 
254
319
        {error, S} ->
255
 
            case get(everbose) of
256
 
                true ->
257
 
                    io:format("~n", []),
258
 
                    error(S,[]);
259
 
                _ ->
260
 
                    io:format("~n~s failed~n", [File])
261
 
            end,
 
320
            io:format("~n~s failed: ~n", [File]),
 
321
            error(S,[]),
262
322
            measure(Dir, Codec, Conf, Files, Results, MCount);
263
323
 
264
324
        {info, S} ->