FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
SmartisanOS_Kernel_Source/scripts/bloat-o-meter at master · coolsnake/SmartisanOS_Kernel_Source · GitHub
coolsnake
SmartisanOS_Kernel_Source
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
SmartisanOS_Kernel_Source
/
scripts
/
bloat-o-meter
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
62 lines (52 loc) · 1.75 KB
Breadcrumbs
SmartisanOS_Kernel_Source
/
scripts
/
bloat-o-meter
Copy path
File metadata and controls
executable file
·
62 lines (52 loc) · 1.75 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/python
#
# Copyright 2004 Matt Mackall <mpm@selenic.com>
#
# inspired by perl Bloat-O-Meter (c) 1997 by Andi Kleen
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
import
sys
,
os
,
re
if
len
(
sys
.
argv
)
!=
3
:
sys
.
stderr
.
write
(
"usage: %s file1 file2
\n
"
%
sys
.
argv
[
0
])
sys
.
exit
(
-
1
)
def
getsizes
(
file
):
sym
=
{}
for
l
in
os
.
popen
(
"nm --size-sort "
+
file
).
readlines
():
size
,
type
,
name
=
l
[:
-
1
].
split
()
if
type
in
"tTdDbBrR"
:
# strip generated symbols
if
name
[:
6
]
==
"__mod_"
:
continue
# function names begin with '.' on 64-bit powerpc
if
"."
in
name
[
1
:]:
name
=
"static."
+
name
.
split
(
"."
)[
0
]
sym
[
name
]
=
sym
.
get
(
name
,
0
)
+
int
(
size
,
16
)
return
sym
old
=
getsizes
(
sys
.
argv
[
1
])
new
=
getsizes
(
sys
.
argv
[
2
])
grow
,
shrink
,
add
,
remove
,
up
,
down
=
0
,
0
,
0
,
0
,
0
,
0
delta
,
common
=
[], {}
for
a
in
old
:
if
a
in
new
:
common
[
a
]
=
1
for
name
in
old
:
if
name
not
in
common
:
remove
+=
1
down
+=
old
[
name
]
delta
.
append
((
-
old
[
name
],
name
))
for
name
in
new
:
if
name
not
in
common
:
add
+=
1
up
+=
new
[
name
]
delta
.
append
((
new
[
name
],
name
))
for
name
in
common
:
d
=
new
.
get
(
name
,
0
)
-
old
.
get
(
name
,
0
)
if
d
>
0
:
grow
,
up
=
grow
+
1
,
up
+
d
if
d
<
0
:
shrink
,
down
=
shrink
+
1
,
down
-
d
delta
.
append
((
d
,
name
))
delta
.
sort
()
delta
.
reverse
()
print
"add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)"
%
\
(
add
,
remove
,
grow
,
shrink
,
up
,
-
down
,
up
-
down
)
print
"%-40s %7s %7s %+7s"
%
(
"function"
,
"old"
,
"new"
,
"delta"
)
for
d
,
n
in
delta
:
if
d
:
print
"%-40s %7s %7s %+7d"
%
(
n
,
old
.
get
(
n
,
"-"
),
new
.
get
(
n
,
"-"
),
d
)
Back
|
FazBrowse Home
|
New Git URL