我只是系统崩溃并重新安装Ubuntu 11.10,我的代码产生了这个奇怪的错误.
我写了一个简单的代码示例来测试问题所在:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
int main (void) {
int i;
i = shm_open ("/tmp/shared", O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); printf ("shm_open rc = %d\n", i);
shm_unlink ("/tmp/shared");
return (0);
}
Run Code Online (Sandbox Code Playgroud)
并且编译命令是
gcc -lrt test.c -o test
错误是:
/tmp/ccxVIUiP.o: In function `main':
test.c:(.text+0x21): undefined reference to `shm_open'
test.c:(.text+0x46): undefined reference to `shm_unlink'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我已经添加了-lrt lib,为什么它仍然没有编译?
我有一些像这样的代码:
for(var id=0; id < message.receiver.length; id++){
var tmp_id = id;
zlib.gzip(JSON.stringify(message.json), function(err, buffer){
...
pushStatusPool[message.receiver[tmp_id]] = null; // fix memory leak
delete pushStatusPool[message.receiver[tmp_id]];
...
});
}
Run Code Online (Sandbox Code Playgroud)
我得到一个警告,tmp_id
在闭包中使用可能会导致问题,因为它是一个可变变量.
我怎么能避免这种情况?我的意思是我怎么能发送一个不可变的变量回调,因为这是一个for循环,我不能改变代码zlib.gzip
?或者换句话说,我怎么能把一个参数传递给一个闭包?
假设我有一个占位符
ph_input = tf.placeholder(dtype=tf.int32, [None, 1])
和一个矢量
h = tf.zeros([1,2], dtype=tf.int32)
在这个例子h
中为了简单起见用零填充,但在实际情况下,它将被其他变量改变,并且将具有不同的值.
我想有效地做一个concat
on ph_input
and h
on维度1
并获得一个新的张量形状[None, 1+2]
.不幸的是,concat
除了concat_dim
我的例子不符合之外,所有输入张量都需要具有相同的形状.
我正在考虑扩展h
到与提供的数据相同的形状,ph_input
但我不确定如何使用占位符本身.如果我直接从输入数据中获取形状,那么我想没有必要使用占位符.
它在执行之前是否将整个二进制文件复制到内存中?我对这个问题很感兴趣,并希望将其改为其他方式.我的意思是,如果二进制文件是100M大(似乎不可能),我可以运行它,而我将它复制到内存中.这有可能吗?
或者你能告诉我如何看待它的运行方式吗?我需要哪些工具?
我的Node.js项目遭遇内存泄漏,我已经在闭包中将变量设置为null,我的意思是,我知道这样的代码:
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
});
Run Code Online (Sandbox Code Playgroud)
会导致内存泄漏,所以我添加一些代码将这些变量设置为null;
var a = 0;
var b = 1;
var c = 0;
example_func(c, func(){
console.log(b);
a = null;
b = null;
c = null;
});
Run Code Online (Sandbox Code Playgroud)
但我仍然有泄密,所以我试着memwatch-node
找出我的代码有什么问题.
结果显示closure
导致泄漏,但未指定足够的目标.
我有这样的JSON
{ what: 'Closure',
'+': 12521,
size: '520.52 kb',
'-': 5118,
size_bytes: 533016 },
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以获得关于哪个封口泄漏的更具体的细节.
我为所有关闭分配了名称,但仍然无效.
我在写一个图形相关的程序Scala
用Spark
.数据集有400万个节点和400万个边缘(你可以将它视为一棵树),但是每次(a Iteration
),我只编辑它的一部分,即由给定节点生根的子树和节点在给定节点和根之间的路径中.
该Iteration
有依赖,这意味着i+1
Iteration
需求的结果来自何处i
.所以我需要将每个结果存储到Iteration
下一步.
我试图找到一种有效的更新方法RDD
,但到目前为止还没有任何线索.我发现PairRDD
有一个lookup
函数可以将计算时间减少O(N)
到O(M
),N
表示对象的总数RDD
并M
表示数量每个分区中的元素.
所以我想反正有我可以更新的对象RDD
有O(M)
?或者更理想的是,O(1)?(我在Spark的邮件列表中看到一封电子邮件说lookup
可以修改以实现O(1))
另一件事是,如果我可以实现O(M)
更新RDD
,我可以将分区增加到比我拥有的内核数量更大的数量并获得更好的性能吗?
我有两个嵌入物张A
和B
,它看起来像
[
[1,1,1],
[1,1,1]
]
Run Code Online (Sandbox Code Playgroud)
和
[
[0,0,0],
[1,1,1]
]
Run Code Online (Sandbox Code Playgroud)
我想要做的是按d(A,B)
元素计算L2距离.
首先,我做了一个tf.square(tf.sub(lhs, rhs))
让
[
[1,1,1],
[0,0,0]
]
Run Code Online (Sandbox Code Playgroud)
然后我想做一个返回的元素减少
[
3,
0
]
Run Code Online (Sandbox Code Playgroud)
但是tf.reduce_sum
不允许我按行减少.任何输入将不胜感激.谢谢.
更新:iozone
有一个选项-+E
可以使用非iozone文件来运行只读FS基准测试
我正在开发一个旨在制作2级缓存只读文件系统的项目,现在我需要测试它的性能.
我试过iozone
,但似乎即使使用-i 1
它也会创建一个临时文件,我无法支持.
你能给我一些关于用于iozone
测试只读FS的建议吗?我真的不熟悉它
是否有任何基准测试软件可以测试只读FS?
谢谢你们!
问题解决了,只是删除silent
属性cluster.setupMaster
,然后它不会有内存泄漏问题,任何人都可以告诉我为什么会这样?
我正在做一个完成的项目Node.js
,当我加入cluster
以利用多CPU时,事情变得奇怪.
我的fork()
工作流程来自主流程,而事情是我的工作流程工作得很好并且没有内存泄漏问题,但是主流程有它.
使用的主进程代码cluster
是:
var cluster = require('cluster');
var numCPU = require('os').cpus().length;
cluster.setupMaster({
exec : '../worker/worker.js',
silent : true
});
if(cluster.isMaster){
for(var i=0; i< numCPU;i++){
cluster.fork();
}
}
Run Code Online (Sandbox Code Playgroud) 在storehouse.storehouse
我有这样的数据库:
CREATE TABLE storehouse
(
user_id bigint NOT NULL,
capacity integer NOT NULL,
storehouse json NOT NULL,
last_modified timestamp without time zone NOT NULL,
CONSTRAINT storehouse_pkey PRIMARY KEY (user_id)
)
Run Code Online (Sandbox Code Playgroud)
并storehouse.storehouse.slots[2]
存储这样的数据:
{
"slots":[
{
"slot" : 1,
"id" : 938
},
{
"slot" : 2,
"id" : 127
},
]
}
Run Code Online (Sandbox Code Playgroud)
问题是,我想更新storehouse.storehouse
,但我不知道如何做到这一点,我知道如何改变整个json
文件,但我想知道自json
支持text
类型,它应该支持部分修改,否则那将是没有json
类型和text
类型之间的区别.(我知道storehouse.storehouse
类型也有不同的类型验证storehouse.storehouse.slots[2]
)
linux ×3
node.js ×3
c ×2
closures ×2
memory-leaks ×2
tensorflow ×2
apache-spark ×1
benchmarking ×1
binary ×1
concat ×1
debugging ×1
filesystems ×1
iozone ×1
json ×1
postgresql ×1
scala ×1