草庐IT

block_occupy

全部标签

c++ - 大数据 block 的 C++ 中的碎片 (Windows)

我一直在使用malloc()分配内存来开发我的程序。但是,我的调查让我认为我面临着内存碎片问题。我的程序需要5次内存分配,每次分配约70MB。当我使用4个线程运行我的程序时,我需要5x4内存分配,每个内存分配~70MB(而且我不能使用更少的内存)。最后,我希望能够使用我的i7的8个内核,即5x8内存分配。如果我执行5x2malloc()s,程序就可以运行。不适用于5x3malloc()。我一直在阅读有关std::vector和std::deque的内容。我相信std::deque是我解决这个问题的方法,因为std::vector分配了一大块连续的内存作为malloc()确实如此。是否还

windows - x64 允许每个 block 的线程数少于 Win32?

当我执行一些cuda内核时,我注意到对于我自己的许多cuda内核,x64构建会导致失败,而Win32不会。我很困惑,因为cuda源代码是相同的,而且构建很好。就在x64执行时,它说它需要太多资源来启动。但是x64在概念上不应该比Win32允许更多的资源吗?如果可能的话,我通常喜欢每个block使用1024个线程。因此,为了使x64代码工作,我必须将block缩小到256。有人知道吗? 最佳答案 是的,这是可能的。大概您正在谈论的问题是registers-per-threadissue.在32位模式下,所有指针都是32位的,只需要一个

Windows 命令外壳 : if-then-else weirdness for block statements

尝试设置一个简单的构建脚本,该脚本将根据其他环境变量扩展路径。这个小脚本运行良好:echooffcallc:\vstudio\vc\bin\vcvars32.batset_ISGIT=1echocurrentpathis%PATH%ifdefined_ISGITsetPATH=c:\git\bin;%PATH%但是如果我想根据_ISGIT变量的存在执行多行,那么我认为这会起作用echooffcallc:\vstudio\vc\bin\vcvars32.batset_ISGIT=1echocurrentpathis%PATH%ifdefined_ISGIT(setPATH=c:\git\

c++ - 将内存映射数据 block 读入结构

我今天一直在VC++2008上研究内存映射,但我仍然没有完全理解如何使用它或者它是否适合我的目的。我的目标是快速读取一个非常大的二进制文件。我有一个结构:typedefstruct_data{intnumber;charcharacter[512];float*entries;}Data;多次写入文件。“条目”变量是一个浮点小数数组。写入此文件后(10000个数据结构,每个“条目”数组为90000个float),我尝试使用以下函数内存映射此文件,以便我可以更快地读取数据。这是我到目前为止所拥有的:voidreadDataMmap(char*fname,//nameoffileconta

c++ - 为什么关闭 udp 套接字 block ?

我正在为Windows桌面/服务器编写一个UDP服务器应用程序。我的代码通过以下方式使用Windows建议的WSAAPI(这是我简化的receivePacket方法):structPacket{unsignedintsize;charbuffer[MAX_SIZE(1024)];}boolreceivePacket(Packetpacket){WSABUFFERwsa_buffer[2];wsa_buffer[0].buf=&packet.size;wsa_buffer[0].len=sizeof(packet.size);wsa_buffer[1].buf=packet.buffer

c++ - 如何使用 Code::Blocks 或 MinGW 在 Windows 上构建 CPP-NETLIB 库

Cpp-netlib的“入门”讨论了在结果应为的地方构建库:cppnetlib-client-connections.libcppnetlib-server-parsers.libcppnetlib-uri.lib它还提供了CMakeLists.txt来执行此操作,但我如何在Code::Blocks中构建它,或者更好的问题是如何使用MinGW构建库?我正在使用预装MinGW的Code::Blocks:mingw32-g++(tdm-1)4.7.1。我试图将所有源代码和header放入Code::Blocks项目并编译它,它已成功编译并运行,但它没有产生任何东西,我真的找不到解决我的问题

c++ - 文件未完全解密,AES CBC 模式。第一个 block 没有解密。 WCAPI

好的,我有5个文件正在加密。我没有设置IV。第一个文件解密没问题,然后剩余文件的第一个block不被解密。所以文件解密99%。我尝试将IV设置为静态值和随机值,结果相同。要100%解密,我加密的第一个文件不必是我解密的第一个文件。哪个让我相信它与解密有关?因此,为了加密,我导入了一个aeskey来创建一个key句柄。然后我加密一个文件并使用相同的key句柄移动到另一个文件...我应该为每个文件设置一个新的key句柄吗?是否有清除按键句柄的功能?有什么东西告诉我WCAPI正在使用上一个文件的最后一个block作为下一个文件的IV?如果我可能误解了什么,请原谅我。这里是decrypt_fi

python - 将 Windows CDROM 驱动器视为 block 文件?

我正在尝试使用Python模块(准确地说是python-dvdvideo)来克隆ISO镜像。如果我将我的计算机上已有的ISO文件的文件路径传递给它,所提供的类工作正常,但如果我尝试将我的CDROM驱动器的盘符传递给它,它会抛出异常。快速检查库的代码后,我确定该类需要一个常规文件或block特殊设备文件,如下所示:def__init__(self,filename):s=os.stat(filename)ifstat.S_ISREG(s.st_mode):f=self.File(filename)elifstat.S_ISBLK(s.st_mode):f=DvdCssFile(filen

windows - 是否有针对 "block"一系列端口的 Windows 套接字 API 调用/选项 à la SO_EXCLUSIVEADDRUSE

在this(相当旧的)文章,作者指出:"端口阻塞端口阻塞允许应用程序阻止其他应用程序对指定范围内的端口执行特定绑定(bind)。阻止端口范围时,应用程序必须选择MaxUserPort设置值(默认为5000)+1和49151(对于未安装服务包的WindowsXP和WindowsServer2003)或65535(适用于WindowsServer2003ServicePack1)。在被阻止的端口范围内,不应存在与端口的绑定(bind)。WindowsSockets返回阻塞范围内的最后一个端口号作为句柄。取消阻止(移除阻止)时,WindowsSockets取消阻止与取消阻止请求具有相同左边缘

c++ - 如何让 PCRE 与 Code::blocks 一起正常工作?

我在Code::blocks中使用PCRE时遇到了一些问题。我已经从here下载了PCRE.并执行了提到的所有步骤here.但是,我在执行过程中收到pcr3.dll丢失错误。Theprogramcan'tstartbecausepcre3.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.Mycode:#include#includeusingnamespacestd;intmain(){regex_treg;stringpattern="[^tpr]{2,}";stringstr="topco