mruby3 を試す
- mruby version: c1f5f9986ae4b5085bee6143d378182746462519 (https://github.com/mruby/mruby/commit/c1f5f9986ae4b5085bee6143d378182746462519)
- ビルド設定の構成変更について検証。
- まずはビルド。
mruby3 を試す
$ ./chkheap | |
PID=7319 | |
Run bpftrace background and hit return: | |
55a46e740000-55a46e741000 r-xp 00000000 08:01 22338 /home/vagrant/chkheap | |
55a46e940000-55a46e941000 r--p 00000000 08:01 22338 /home/vagrant/chkheap | |
55a46e941000-55a46e942000 rw-p 00001000 08:01 22338 /home/vagrant/chkheap | |
55a4705d0000-55a4705f1000 rw-p 00000000 00:00 0 [heap] | |
7f341d659000-7f341d840000 r-xp 00000000 08:01 21679 /lib/x86_64-linux-gnu/libc-2.27.so | |
7f341d840000-7f341da40000 ---p 001e7000 08:01 21679 /lib/x86_64-linux-gnu/libc-2.27.so |
自分がどういうことを考えてクラス設計しているかを整理してみました。同じようなことを大名エンジニアカレッジでも話したのですが、今回はフィヨルドの課題で考えてみました。
たとえば ls コマンドの場合はこういうレイヤがあるんじゃないかなあと考えられます。
#!/bin/bash | |
trepo() { | |
local TP="$1" | |
cat /sys/kernel/debug/tracing/events/$TP/format; | |
} | |
_trepo_compl() { | |
local args | |
args=$( cd /sys/kernel/debug/tracing/events ; find */* -type d ) |
# -*- mode: ruby -*- | |
Vagrant.configure("2") do |config| | |
config.vm.box = "ubuntu/disco64" | |
config.vm.boot_timeout = 900 | |
config.vm.provider "virtualbox" do |vbox| | |
vbox.cpus = 4 | |
vbox.memory = 4096 | |
end | |
config.vm.provision "shell", inline: <<-SHELL |
default: libupdateptr.so updateptr.o | |
updateptr.o: updateptr.c | |
gcc -fPIC -c ./updateptr.c -o updateptr.o | |
libupdateptr.so: updateptr.o | |
gcc -shared updateptr.o -o libupdateptr.so |
uprobe:/usr/sbin/nginx:ngx_http_read_request_header /!@start[arg1]/ | |
{ | |
printf("[%ld] Passed: %s (%p)\n", tid, probe, arg1); | |
@start[arg1] = nsecs | |
} | |
uprobe:/usr/sbin/nginx:ngx_http_finalize_connection /@start[arg1]/ | |
{ | |
@reqtime = hist(nsecs - @start[arg1]); | |
delete(@start[arg1]); | |
} |