小编pix*_*der的帖子

在python中为大文件创建校验和的最快方法

我需要跨网络传输大文件,需要每小时为它们创建校验和.所以产生校验和的速度对我来说至关重要.

不知怎的,我不能让zlib.crc32和zlib.adler32在Windows XP Pro 64bit机器上使用大于4GB的文件.我怀疑我在这里达到了32位的限制?使用hashlib.md5我可以得到一个结果,但问题是速度.为4.8GB文件生成md5大约需要5分钟.任务管理器显示该进程仅使用一个核心.

我的问题是:

  1. 有没有办法让crc适用于大文件?我更喜欢使用crc而不是md5
  2. 如果没有那么有没有办法加快md5.hexdigest()/ md5.digest?或者在这种情况下任何hashlib hexdigest/digest?可能将其拆分为多线程进程?我怎么做?

PS:我正在开发类似于"资产管理"系统的东西,有点像svn,但资产包括大型压缩图像文件.文件有微小的增量变化.检测变化和错误检测需要散列/校验和.

python crc32 multithreading md5 hashlib

6
推荐指数
2
解决办法
1万
查看次数

使用glew和glfw的opengl的cmake标志

我有这个简单的代码:

#include <stdio.h>
#include <stdlib.h>

#include <GL/glew.h>
#include <GL/glfw.h>

int main(int argc, char const* argv[] )
{
    if( !glfwInit() ){
        fprintf( stderr, "failed\n" );
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的CmakeLists.txt中:

PROJECT(test C)
find_package(OpenGL)
ADD_DEFINITIONS(
    -std=c99
    -lGL
    -lGLU
    -lGLEW
    -lglfw
)
SET(SRC test)
ADD_EXECUTABLE(test ${SRC})
Run Code Online (Sandbox Code Playgroud)

跑"cmake".不会产生任何错误,但运行make会说:

test.c:(.text+0x10): undefined reference to `glfwInit'
collect2: ld returned 1 exit status
make[2]: *** [tut1] Error 1
Run Code Online (Sandbox Code Playgroud)

在跑步的时候:

gcc -o test test.c -std=c99 -lGL -lGLU -lGLEW -lglfw
Run Code Online (Sandbox Code Playgroud)

成功编译代码没有错误.如何使用我的代码运行cmake?

另外,如果我将这些行添加到main函数:

glfwOpenWindowHint( GLFW_FSAA_SAMPLES, 4 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 ); …
Run Code Online (Sandbox Code Playgroud)

opengl glew cmake glfw

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

标签 统计

cmake ×1

crc32 ×1

glew ×1

glfw ×1

hashlib ×1

md5 ×1

multithreading ×1

opengl ×1

python ×1