小编Blu*_*ete的帖子

分配并立即删除属性

我不是javascript程序员,我完全不知道这个代码做了什么以及它用于什么:

function map(x) {
    x = Object.create(null);
    x.x = 0;
    delete x.x;
    return x;
}
Run Code Online (Sandbox Code Playgroud)

这是使用dart2js编译器时所获得的一部分.

我不是想了解整个上下文,但是分配属性并直接删除它有助于实现什么?

这看起来像是超越了一些内部JS引擎行为.

编辑:根据要求,这里是由dart2js生成的完整out.js(输入是来自维基百科的"Hello world!"示例):https://gist.github.com/Blutkoete/59be155b2642832e9acd383df0857d02

编辑2:gurvinder372的链接指示与"委托匿名JS对象的性能"有关,但我可能需要很多JS的经验才能理解.

javascript

13
推荐指数
1
解决办法
136
查看次数

这种"快速哈希"功能是危险的吗?

我需要一个智能复制功能,以实现可靠,快速的文件复制和链接.文件非常大(从几千兆字节到超过200GB)并分布在很多文件夹中,人们在白天重命名文件和文件夹,所以我想使用哈希来查看我是否已经复制了一个文件,可能是一个不同的名称,只在这种情况下创建一个链接.

我是哈希全新的,我在这里使用这个函数哈希:

import hashlib

def calculate_sha256(cls, file_path, chunk_size=2 ** 10):
    '''
    Calculate the Sha256 for a given file.

    @param file_path: The file_path including the file name.
    @param chunk_size: The chunk size to allow reading of large files.
    @return Sha256 sum for the given file.
    '''
    sha256 = hashlib.sha256()
    with open(file_path, mode="rb") as f:
        for i in xrange(0,16):
            chunk = f.read(chunk_size)
            if not chunk:
                break
            sha256.update(chunk)
    return sha256.hexdigest()
Run Code Online (Sandbox Code Playgroud)

对于3GB文件,这需要一分钟,因此最终,16TB HD的过程可能非常慢.

现在我的想法是使用一些关于文件内部结构的额外知识来加快速度:我知道它们包含一个小标题,然后是大量的测量数据,我知道它们包含实时时间戳,所以我很确保两个文件的前16MB相同的可能性非常低(为了实现这一点,需要在完全相同的环境条件下同时创建两个文件).所以我的结论是,它应该足以只散列每个文件的第一个X MB.

它适用于我的示例数据,但由于我没有经验,我只想询问是否有一些我不知道的事情(隐藏的危险或更好的方法).

非常感谢你!

python hash

5
推荐指数
1
解决办法
235
查看次数

vector :: end()是否保证大于向量中任何对象的存储地址?

您在Internet上找到的默认迭代器循环如下所示:

for(vector<int>::iterator it=myVector.begin(); it!=myVector.end(); it++)
Run Code Online (Sandbox Code Playgroud)

现在我想用迭代器尝试一些更奇特的东西.我正在考虑运行例如向量的每个第三个元素(it + 3作为增量函数),但我担心如果我使用不同的编译器或不同的数据集,这种行为会爆炸,但it + 3可能不同vector::end(),但同时也没有指出有效的东西.

所以我想知道是否总是如此

it >= myVector.end()
Run Code Online (Sandbox Code Playgroud)

然后它没有指向我的向量中的元素?我可以使用<而不是!=安全的,我不会遇到特定于编译器实现的问题吗?

非常感谢你!

c++ vector

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

标签 统计

c++ ×1

hash ×1

javascript ×1

python ×1

vector ×1