我正在使用以下命令将 golang 代码编译为程序集:
go build -gcflags -S .
Run Code Online (Sandbox Code Playgroud)
在汇编代码中,我说了很多行,例如:
PCDATA $2, $1
Run Code Online (Sandbox Code Playgroud)
FUNCDATA 和 PCDATA 指令包含垃圾收集器使用的信息;它们是由编译引入的
但没有很多细节
是否可以引用窗口分区中的当前行?我想做如下的事情:
SELECT min(ABS(variable - CURRENT.variable)) over (order by criterion RANGE UNBOUNDED PRECEDING)
也就是说,我想在给定的分区中找到最接近当前值的变量。可以做这样的事情吗?
举个例子,来自:
criterion | variable
1 2
2 4
3 2
4 7
5 6
我们将得到:
null
2
0
3
1
谢谢
我正在尝试分析我正在运行的服务器。我主要关注https://artem.krylysov.com/blog/2017/03/13/profiling-and-optimizing-go-web-applications/
我添加以下代码以允许分析:
mux.HandleFunc("/debug/pprof/", pprof.Index)
mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
mux.HandleFunc("/debug/pprof/profile", pprof.Profile)
mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
mux.HandleFunc("/debug/pprof/trace", pprof.Trace)
Run Code Online (Sandbox Code Playgroud)
我启动了一些基准测试并运行go tool pprof http:/.1:8080/debug/pprof/profile?seconds=5,这按预期工作,因为它在 5 秒内分析了 cpu。
我想对堆做同样的事情。但是,如果我这样做,go tool pprof -alloc_objects http:/.1:8080/debug/pprof/profile?seconds=5我会获得所有分配,而不仅仅是最后五秒内的分配。
在我的特定情况下,我在启动时运行大量分配,并且它们掩盖了所有其他分配。是否可以将它们限制在这个时间段内?如果我执行跟踪,我可以看到堆正在增加,但我无法查询那里有哪些对象。
我尝试拍摄两个不同的堆快照,并使用带有 --base 的 go tool pprof 。然而它不起作用,它显示 0 差异。我的猜测是,与分配的总内存相比,对象太小,因此它们不会保存到配置文件中。
我有一个相对 URL,类似于/a/b?someParam=cccc
我想提取参数的值。一种替代方法是执行 (new URL(myUri, 'http://example.com')).searchParams.get('someParam'). 它很好,因为它使用浏览器的内置函数,并且在 url 参数被编码的情况下它是安全的。
但是,它取决于 url 的随机基数http://example.com。有没有办法在没有基础的情况下解析 URL?或者提取搜索参数?
我有一个mock包含一些字符串值的表:
CREATE TABLE mock (prop_a TEXT, prop_b TEXT);
Run Code Online (Sandbox Code Playgroud)
一些随机数据
INSERT INTO mock (prop_a, prop_b) SELECT 'fake_a' || (i % 100), 'fake_b' || (i % 100) FROM generate_series(1, 100000) i
Run Code Online (Sandbox Code Playgroud)
我想以数组的形式获取值的摘要。
就像是:
SELECT array_agg(DISTINCT prop_a), array_agg(DISTINCT prop_b) FROM mock
Run Code Online (Sandbox Code Playgroud)
假设我只想为每列取 10 个不同的值(向用户显示示例)。
一个人可以做
SELECT agg_a.array_agg, agg_b.array_agg
FROM
(SELECT array_agg(prop_a)
FROM
(
SELECT DISTINCT prop_a
FROM mock
LIMIT 10
) dist_a) agg_a,
(SELECT array_agg(prop_b)
FROM
(
SELECT DISTINCT prop_b
FROM mock
LIMIT 10
) dist_b) agg_b
Run Code Online (Sandbox Code Playgroud)
但理想情况下会有这样的语法:
SELECT …Run Code Online (Sandbox Code Playgroud) 我有一个脚本可以从 CLI 更新 lambda 代码。它包括几个步骤:
## prepare code
aws lambda update-function-code --function-name my-function --zip-file fileb://my-file --region eu-west-1
## execute code: aws lambda invoke..
Run Code Online (Sandbox Code Playgroud)
我的问题是,在执行 update-function-code 后,cli 等待按下 Enter 键,而我并不真正关心结果,我想继续执行。
我尝试了不同的东西,但没有用: 非交互模式:
bash -c `aws lambda...`
Run Code Online (Sandbox Code Playgroud)
管道输入功能:
printf '\n' | aws lambda...
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我的 aws cli 版本是 2.0.12
我正在尝试修改PERLLIB,以允许访问某个库所在的文件夹。
为此,我正在修改PERLLIB变量:
export PERLLIB=/some/folder
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做:
perl
print "$_\n" for @INC;
Run Code Online (Sandbox Code Playgroud)
显示新文件夹。但是,如果我这样做
perl -wT
print "$_\n" for @INC;
Run Code Online (Sandbox Code Playgroud)
不显示新文件夹。有没有办法用带有T标志的env变量来修改INC变量?
go ×2
postgresql ×2
assembly ×1
aws-cli ×1
bash ×1
heap-memory ×1
javascript ×1
perl ×1
profiling ×1