syscall | new | old | new / old |
---|---|---|---|
access | 8 | 8 | 100,00% |
arch_prctl | 1 | 1 | 100,00% |
brk | 17 | 16 | 106,25% |
clock_getres | 1 | 1 | 100,00% |
clone | 10 | 10 | 100,00% |
close | 1119 | 1490 | 75,10% |
epoll_create1 | 3 | 3 | 100,00% |
epoll_ctl | 7 | 7 | 100,00% |
epoll_wait | 8825 | 50319 | 17,54% |
eventfd2 | 3 | 3 | 100,00% |
exit | 9 | 9 | 100,00% |
exit_group | 1 | 1 | 100,00% |
fcntl | 11 | 11 | 100,00% |
futex | 13903 | 76681 | 18,13% |
getcwd | 1 | 1 | 100,00% |
getdents | 3291 | 2922 | 112,63% |
getegid | 11 | 11 | 100,00% |
geteuid | 11 | 11 | 100,00% |
getgid | 11 | 11 | 100,00% |
getrandom | 1 | 1 | 100,00% |
getrlimit | 11 | 11 | 100,00% |
getuid | 11 | 11 | 100,00% |
ioctl | 37 | 37 | 100,00% |
madvise | 51 | 163 | 31,29% |
mmap | 77 | 247 | 31,17% |
mprotect | 286 | 599 | 47,75% |
munmap | 87 | 427 | 20,37% |
newfstat | 1116 | 1480 | 75,41% |
open | 1110 | 1482 | 74,90% |
pipe2 | 4 | 4 | 100,00% |
pread64 | 1 | 3 | 33,33% |
read | 4444 | 25232 | 17,61% |
readlink | 1 | 1 | 100,00% |
rt_sigaction | 63 | 63 | 100,00% |
rt_sigprocmask | 13 | 13 | 100,00% |
sched_yield | 9 | 7 | 128,57% |
set_robust_list | 11 | 11 | 100,00% |
set_tid_address | 1 | 1 | 100,00% |
statx | 5 | 23756 | 0,02% |
sysinfo | 0 | 1 | 0,00% |
write | 22101 | 26697 | 82,78% |
Last active
June 23, 2021 12:52
-
-
Save ad-m/4c791ec1870d4060728ebc3c6b67fb62 to your computer and use it in GitHub Desktop.
klaw & native walking syscall count
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
$ sudo syscount -c nodejs iterate-klaw.js /sys/fs/cgroup/ | |
Tracing while running: "nodejs iterate-klaw.js /sys/fs/cgroup/"... | |
SYSCALL COUNT | |
arch_prctl 1 | |
clock_getres 1 | |
exit_group 1 | |
getcwd 1 | |
getrandom 1 | |
readlink 1 | |
set_tid_address 1 | |
sysinfo 1 | |
epoll_create1 3 | |
eventfd2 3 | |
pread64 3 | |
pipe2 4 | |
epoll_ctl 7 | |
sched_yield 7 | |
access 8 | |
exit 9 | |
clone 10 | |
fcntl 11 | |
getegid 11 | |
geteuid 11 | |
getgid 11 | |
getrlimit 11 | |
getuid 11 | |
set_robust_list 11 | |
rt_sigprocmask 13 | |
brk 16 | |
ioctl 37 | |
rt_sigaction 63 | |
madvise 163 | |
mmap 247 | |
munmap 427 | |
mprotect 599 | |
newfstat 1480 | |
open 1482 | |
close 1490 | |
getdents 2922 | |
statx 23756 | |
read 25232 | |
write 26697 | |
epoll_wait 50319 | |
futex 76681 | |
*/ | |
const klaw = require('klaw'); | |
const iterate = async function* (directory) { | |
for await (const { path, stats } of klaw(directory)) { | |
if (!stats.isDirectory()) { | |
continue; | |
} | |
yield {name: path} | |
} | |
}; | |
const main = async () => { | |
for await (const {name} of iterate(process.argv[2])){ | |
console.log(name); | |
}; | |
}; | |
main().catch(err => { | |
console.error(err); | |
process.exit(-1) | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
$ sudo syscount -c nodejs iterate-native.js /sys/fs/cgroup/ | |
Tracing while running: "nodejs iterate-native.js /sys/fs/cgroup/"... | |
SYSCALL COUNT | |
arch_prctl 1 | |
clock_getres 1 | |
exit_group 1 | |
getcwd 1 | |
getrandom 1 | |
pread64 1 | |
readlink 1 | |
set_tid_address 1 | |
epoll_create1 3 | |
eventfd2 3 | |
pipe2 4 | |
statx 5 # 0.02% of previous value | |
epoll_ctl 7 | |
access 8 | |
exit 9 | |
sched_yield 9 | |
clone 10 | |
fcntl 11 | |
getegid 11 | |
geteuid 11 | |
getgid 11 | |
getrlimit 11 | |
getuid 11 | |
set_robust_list 11 | |
rt_sigprocmask 13 | |
brk 17 | |
ioctl 37 | |
madvise 51 | |
rt_sigaction 63 | |
mmap 77 | |
munmap 87 | |
mprotect 286 | |
open 1110 | |
newfstat 1116 | |
close 1119 | |
getdents 3291 | |
read 4444 # 5x time less | |
epoll_wait 8825 # 5x time less | |
futex 13903 | |
write 22101 | |
*/ | |
const fs = require('fs'); | |
const path = require('path'); | |
const iterate = async function* (directory) { | |
for await (const dirent of await fs.promises.opendir(directory)) { | |
const name = path.join(directory, dirent.name); | |
yield { | |
dirent, | |
name | |
}; | |
if(dirent.isDirectory()){ | |
for await(const entry of iterate(name)){ | |
yield entry | |
} | |
} | |
} | |
}; | |
const main = async () => { | |
for await (const {name} of iterate(process.argv[2])){ | |
console.log(name); | |
}; | |
}; | |
main().catch(err => { | |
console.error(err); | |
process.exit(-1) | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "benchmark", | |
"lockfileVersion": 2, | |
"requires": true, | |
"packages": { | |
"": { | |
"dependencies": { | |
"klaw": "^3.0.0" | |
} | |
}, | |
"node_modules/graceful-fs": { | |
"version": "4.2.6", | |
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", | |
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" | |
}, | |
"node_modules/klaw": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", | |
"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", | |
"dependencies": { | |
"graceful-fs": "^4.1.9" | |
} | |
} | |
}, | |
"dependencies": { | |
"graceful-fs": { | |
"version": "4.2.6", | |
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", | |
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" | |
}, | |
"klaw": { | |
"version": "3.0.0", | |
"resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", | |
"integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", | |
"requires": { | |
"graceful-fs": "^4.1.9" | |
} | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"dependencies": { | |
"klaw": "^3.0.0" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment