如何查找侦听/使用我的tcp端口的进程?我在mac os x上.
有时,在崩溃或一些错误后,我的rails应用程序锁定端口3000.我找不到它使用ps -ef ...我怎么找到愚蠢的东西并杀死它,残忍......?
做的时候
rails server
Run Code Online (Sandbox Code Playgroud)
我明白了
已经在使用的地址 - bind(2)(Errno :: EADDRINUSE)
2014年更新:
要完成以下某些答案:执行kill命令后,可能需要删除pid文件 rm ~/mypath/myrailsapp/tmp/pids/server.pid
我正在尝试用不同的方式在 golang 中初始化/声明数组。我得到了不同的行为/结果。
go版本go1.3 darwin/amd64
func main() {
a := [100000000]int64{}
var i int64
for i = 0; i < 100000000; i++ {
a[i] = i
}
}
Run Code Online (Sandbox Code Playgroud)
生成 763MB 的二进制文件。当我使用此消息运行它时,它会在几秒钟后崩溃。
运行时:goroutine 堆栈超过 1000000000 字节限制
致命错误:堆栈溢出
func main() {
var a [100000000]int64
var i int64
for i = 0; i < 100000000; i++ {
a[i] = i
}
}
Run Code Online (Sandbox Code Playgroud)
生成 456KB 的二进制文件。它运行时间不到一秒。
谁能帮助我理解为什么存在这些差异(以及我可能错过的其他差异)?谢谢!
编辑:
我构建了两个不同的代码片段并运行编译后的版本,因此没有添加编译时间。相比之下,我第一次运行 version1 的速度非常慢。这是输出。
go build version1.go
go build version2.go
Run Code Online (Sandbox Code Playgroud)
这些是执行输出
第一次运行 …
我尝试显示这种行为的一个最小的例子。这是我加载的代码:
:- use_module(library(clpfd)).
gcd(A, 0, A) :- !.
gcd(0, B, B) :- !.
gcd(A, B, C) :- A #> B, !, A1 #= A mod B, gcd(A1, B, C).
gcd(A, B, C) :- A #=< B, A1 #= B mod A, gcd(A1, A, C).
ncalc(N, X, Y) :-
Y #=< N,
X*X #= (Y),
X #< Y,
X #> 0,
gcd(X, Y, 1).
Run Code Online (Sandbox Code Playgroud)
查询ncalc(9, X, Y).我得到:
ERROR: Stack limit (1.0Gb) exceeded
ERROR: Stack sizes: local: 1Kb, global: 0.7Gb, …Run Code Online (Sandbox Code Playgroud)