Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
mbedtls
Commits
4d5cc11e
Commit
4d5cc11e
authored
Nov 25, 2014
by
Manuel Pégourié-Gonnard
Browse files
Add script to automate memory usage measurement
parent
a6fc5b2c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
92 additions
and
0 deletions
+92
-0
scripts/massif_max.pl
scripts/massif_max.pl
+31
-0
scripts/memory.sh
scripts/memory.sh
+61
-0
No files found.
scripts/massif_max.pl
0 → 100755
View file @
4d5cc11e
#!/usr/bin/perl
# Parse a massif.out.xxx file and output peak total memory usage
use
warnings
;
use
strict
;
use
utf8
;
use
open
qw(:std utf8)
;
die
unless
@ARGV
==
1
;
my
@snaps
;
open
my
$fh
,
'
<
',
$ARGV
[
0
]
or
die
;
{
local
$/
=
'
snapshot=
';
@snaps
=
<
$fh
>
;
}
close
$fh
or
die
;
my
$max
=
0
;
for
(
@snaps
)
{
my
(
$heap
,
$heap_extra
,
$stack
)
=
m{
mem_heap_B=(\d+)\n
mem_heap_extra_B=(\d+)\n
mem_stacks_B=(\d+)
}xm
;
next
unless
defined
$heap
;
my
$total
=
$heap
+
$heap_extra
+
$stack
;
$max
=
$total
if
$total
>
$max
;
}
printf
"
$max
\n
";
scripts/memory.sh
0 → 100755
View file @
4d5cc11e
#!/bin/sh
# Measure memory usage of a minimal client using a small configuration
# Currently hardwired to the ccm-psk configuration, may be expanded later
set
-eu
CONFIG_H
=
'include/polarssl/config.h'
CLIENT
=
'mini_client'
if
[
-r
$CONFIG_H
]
;
then
:
;
else
echo
"
$CONFIG_H
not found"
>
&2
exit
1
fi
CONFIG_BAK
=
${
CONFIG_H
}
.bak
cp
$CONFIG_H
$CONFIG_BAK
cp
configs/config-ccm-psk-tls1_2.h
$CONFIG_H
printf
"Executable size... "
make clean
CFLAGS
=
-fno-asynchronous-unwind-tables
make
OFLAGS
=
-Os
lib
>
/dev/null 2>&1
cd
programs
CFLAGS
=
-fno-asynchronous-unwind-tables
make
OFLAGS
=
-Os
ssl/
$CLIENT
>
/dev/null
strip ssl/
$CLIENT
stat
-c
'%s'
ssl/
$CLIENT
cd
..
printf
"Peak ram usage... "
make clean
CFLAGS
=
-g3
make
OFLAGS
=
-Os
lib
>
/dev/null 2>&1
cd
programs
CFLAGS
=
-g3
make
OFLAGS
=
-Os
ssl/
$CLIENT
ssl/ssl_server2
>
/dev/null
cd
..
rm
-f
massif.out.
*
programs/ssl/ssl_server2
psk
=
000102030405060708090A0B0C0D0E0F
>
/dev/null &
SRV_PID
=
$!
sleep
1
;
if
valgrind
--tool
=
massif
--stacks
=
yes
programs/ssl/
$CLIENT
>
/dev/null 2>&1
then
FAILED
=
0
else
echo
"client failed"
>
&2
FAILED
=
1
fi
kill
$SRV_PID
wait
$SRV_PID
scripts/massif_max.pl massif.out.
*
rm
-f
massif.out.
*
mv
$CONFIG_BAK
$CONFIG_H
exit
$FAILED
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment