如果我传入2 ^ 32组字符串,md5碰撞的概率是多少?
我可以说答案只是2 ^ 32/2 ^ 128 = 1/1.2621774e-29,因为md5 hash的位长是128?
我正在编写一个自定义node.js插件,由C++与C程序混合使用.
addon.cc包含类似的内容
#define BUILDING_NODE_EXTENSION
#include <node.h>
#include <node_buffer.h>
using namespace v8;
using namespace node;
/* other logic and function... */
Handle<Value> RunCallback(const Arguments& args) {
HandleScope scope;
Local<Value> buffer1 = args[0];
size_t size = Buffer::Length(buffer1->ToObject());
char* bufferdata = Buffer::Data(buffer1->ToObject());
/* some logic written in C style ... */
Local<Function> cb = Local<Function>::Cast(args[1]);
const unsigned argc = 1;
Local<Value> argv[argc] = { Local<Value>::New(String::New(outputdata, outputSize)) };
cb->Call(Context::GetCurrent()->Global(), argc, argv);
return scope.Close(Undefined());
}
void Init(Handle<Object> target) {
target->Set(String::NewSymbol("runCallback"), FunctionTemplate::New(RunCallback)->GetFunction());
}
NODE_MODULE(addon, Init)
Run Code Online (Sandbox Code Playgroud)
它还包括其他.cc文件,所以wscript是这样的: …
最近,我安装了https://github.com/lloyd/node-memwatch进行开发,以调查GC如何与我的程序进行交互.
我已将事件"stat"绑定,arthor声明在执行GC时会触发事件.
我发现当脚本负载很高时.不会触发"stat"事件.我不确定它是否意味着GC没有执行,但它表明GC可能没有触发.
在我的生产服务器中,全天的装载量甚至更高.我很确定GC没有机会表演.内存使用量没有机会减少.就像内存泄漏一样.
我知道手动GC不是一个好主意(在node.js中有人反对手动GC的想法,但我找不到链接供参考),但我看到内存使用量不断增加.它确实需要解决.
我知道在Groovy中,如果
list = [1,2,3,1]
Run Code Online (Sandbox Code Playgroud)
什么时候
list.unique()
Run Code Online (Sandbox Code Playgroud)
带着回归
[1,2,3]
Run Code Online (Sandbox Code Playgroud)
但是,如果我想检测列表中重复,非连续项目的重复值.我怎样才能做到这一点?
detect([1,2,3,1]) => true
detect([1,2,3,2]) => true
detect([1,1,2,3]) => false
detect([1,2,2,3,3]) => false
detect([1,2,3,4]) => false
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:添加这两种情况
detect([1,2,2,1]) => true
detect([1,2,1,1]) => true
Run Code Online (Sandbox Code Playgroud)
true表示发生任何非连续的重复.
我正在尝试通过webkit-devtools-agent(https://github.com/c4milo/node-webkit-agent)调查我的nodejs程序中的内存泄漏问题.
通过获取堆快照,我可以看到堆大小不断增加.但由于我的代码结构复杂.似乎要弄清楚哪些代码生成这些对象并不容易.
在个人资料页面中,我只能看到如下内容:
(Array)
[] @28631
[] @31853
(map descriptors)[] @44687
function NativeModule() @35997
Run Code Online (Sandbox Code Playgroud)
有没有办法找出这些对象的内容和生成这些对象的源?
我读了一篇关于node.js调试的文章(http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/).真是太神奇了.但不幸的是,我不认为它在Linux服务器中可用.
谢谢!
对于Java函数中的语句:
Xxx xxx = new Xxx() {
public Abc abc(final Writer out) {
return new SomeFunction(out) {
boolean isDone = false;
public void start(final String name) {
/* blah blah blah */
}
};
}
};
Run Code Online (Sandbox Code Playgroud)
哪个变量(包括函数)放在堆上,哪些变量放在堆栈上?
我问这个的原因是JVM中的分段错误:
kernel: java[14209]: segfault at 00002aab04685ff8 rip 00002aaab308e4d0 rsp 00002aab04685ff0 error 6
Run Code Online (Sandbox Code Playgroud)
00002aab04685ff8
并且00002aab04685ff0
附近,似乎堆栈增长太快.我尝试研究这部分代码,并怀疑它是多次调用此函数时是否是问题的原因.如果堆被堆上的某些变量引用,堆栈是否可能被清除?
我正在考虑如何通过模拟器模拟位置防止 HTML5 中的 GPS 欺骗。
这些是我的一些想法:
取一个以上的样本。在实际情况下,GPS 位置应该是移动的。实际情况应该会有一些差异。
使用密钥加密数据,这样欺骗者就无法看到发送到服务器的内容。但是,通过查看代码中的 alogthrm,他们可能能够查看发送到服务器的内容。
我知道在实际情况下这并不容易。但是,我仍然想防止某些情况。你有什么其他的建议?
node.js ×3
c ×1
c++ ×1
debugging ×1
geolocation ×1
groovy ×1
heap ×1
html ×1
java ×1
javascript ×1
md5 ×1
memory-leaks ×1
stack ×1
v8 ×1