小编Har*_*han的帖子

如果我传入2 ^ 32组字符串,md5碰撞的概率是多少?

如果我传入2 ^ 32组字符串,md5碰撞的概率是多少?

我可以说答案只是2 ^ 32/2 ^ 128 = 1/1.2621774e-29,因为md5 hash的位长是128?

md5

12
推荐指数
1
解决办法
9898
查看次数

自定义node.js插件可以构建但不能包含

我正在编写一个自定义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是这样的: …

c c++ v8 node.js node.js-addon

11
推荐指数
1
解决办法
1309
查看次数

node.js垃圾收集的时间

最近,我安装了https://github.com/lloyd/node-memwatch进行开发,以调查GC如何与我的程序进行交互.

我已将事件"stat"绑定,arthor声明在执行GC时会触发事件.

我发现当脚本负载很高时.不会触发"stat"事件.我不确定它是否意味着GC没有执行,但它表明GC可能没有触发.

在我的生产服务器中,全天的装载量甚至更高.我很确定GC没有机会表演.内存使用量没有机会减少.就像内存泄漏一样.

  1. 我的观察是否正确?连续高负荷时GC无法执行吗?
  2. 如果是这样,我应该使用暴露的GC接口来强制GC吗?
  3. GC堵塞了吗?我应该更频繁地执行GC,以便GC不会长时间阻塞每个GC吗?

我知道手动GC不是一个好主意(在node.js中有人反对手动GC的想法,但我找不到链接供参考),但我看到内存使用量不断增加.它确实需要解决.

garbage-collection node.js

8
推荐指数
1
解决办法
2423
查看次数

Groovy:检测列表中重复的非连续值的最简单方法

我知道在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表示发生任何非连续的重复.

groovy

6
推荐指数
4
解决办法
7240
查看次数

通过webkit-devtools-agent调试node.js,查看堆中对象内容的方法?

我正在尝试通过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服务器中可用.

谢谢!

debugging memory-leaks node.js

5
推荐指数
0
解决办法
920
查看次数

在Java中,哪些对象放在堆栈上,哪些放在堆上?

对于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附近,似乎堆栈增长太快.我尝试研究这部分代码,并怀疑它是多次调用此函数时是否是问题的原因.如果堆被堆上的某些变量引用,堆栈是否可能被清除?

java heap stack

4
推荐指数
1
解决办法
1009
查看次数

在 HTML5 中防止 GPS sproofing 的方法?

我正在考虑如何通过模拟器模拟位置防止 HTML5 中的 GPS 欺骗。

这些是我的一些想法:

  1. 取一个以上的样本。在实际情况下,GPS 位置应该是移动的。实际情况应该会有一些差异。

  2. 使用密钥加密数据,这样欺骗者就无法看到发送到服务器的内容。但是,通过查看代码中的 alogthrm,他们可能能够查看发送到服务器的内容。

我知道在实际情况下这并不容易。但是,我仍然想防止某些情况。你有什么其他的建议?

html javascript geolocation

0
推荐指数
1
解决办法
1288
查看次数