草庐IT

buffer_memory_barrier

全部标签

c++ - "std::bad_alloc": am I using too much memory?

消息:terminatecalledafterthrowinganinstanceof'std::bad_alloc'what():std::bad_alloc我查看了gdb回溯,这是我自己实现的最低级别的方法:/**getanarrayofvec3s,whichwillbeusedforrenderingtheimage*/vec3*MarchingCubes::getVertexNormalArray(){//UsedthesamearraysizetechniqueasgetVertexArray:wewantindicestomatchupvec3*array=newvec3[

c++ - "live C++ objects that live in memory mapped files"?

因此,我在Gamasutra阅读了JohnCarmack的采访,其中他谈到了他所谓的“存在于内存映射文件中的实时C++对象”。以下是一些引用:JC:Yeah.AndIactuallygetmultiplebenefitsoutofitinthat...ThelastiOSRageproject,weshippedwithsomenewtechnologythat'susingsomecleverstufftomakeliveC++objectsthatliveinmemorymappedfiles,backedbytheflashfilesystemonhere,whichishowI

c++ - 编译 Protocol Buffer 生成的源文件时是否有更好的方法来解决警告?

对于一个简单的proto文件:messagePerson{requiredint32id=1;requiredstringname=2;optionalstringemail=3;}它由protoc.exe编译,结果用于一个同样简单的测试项目,除了包含protoc生成的文件之外,它基本上什么都不做。我正在使用msvc10构建测试项目(x64),然后它给了我很多警告:Warning1warningC4244:'return':conversionfrom'__int64'to'int',possiblelossofdataD:\Work\protobuf-trunk\src\google

c# - C# 中的 Google Protocol Buffer

我们正在考虑使用Google的ProtocolBuffer通过网络处理c++应用程序和c#应用程序之间的序列化。我的问题是,我为c#找到了几个不同的版本。两者看起来都不错,但是,有人知道两者之间有什么不同(如果有的话)protobuf-netjskeet/dotnet-protobufs 最佳答案 当然;dotnet-protobufs是java版本的移植,因此与核心google实现共享非常相似的API和方法;代码gem、不变性等。Protobuf-net是字节兼容的,但它是一个完整的从头开始的重新实现,遵循标准的.NET习惯用法-

c++ - 有没有办法得到标准 :string's buffer

有没有办法从std::string中获取“原始”缓冲区?我正在考虑类似于CString::GetBuffer()的东西。例如,使用CString我会这样做:CStringmyPath;::GetCurrentDirectory(MAX_PATH+1,myPath.GetBuffer(MAX_PATH));myPath.ReleaseBuffer();那么,std::string有类似的吗? 最佳答案 虽然有点不正统,但使用std::string作为线性内存缓冲区是完全有效的,唯一需要注意的是,直到C++11标准才支持它.std::s

c++ - 为什么 Protocol Buffer 字节在 C++ 中是字符串?

ProtocolBuffer说它可以containanyarbitrarysequenceofbytes.但是如果我的数据包含'\0',ProtocolBuffer如何从字符串变量中编码我的整个数据。 最佳答案 ProtocolBuffer的C++实现将字节和字符串类型返回为std::string。这个结构包含一个长度函数,告诉你对应的数据有多长(以及数据本身)。因此嵌入的\0字符没有特殊意义。设置函数也接受字符串,或者有些版本接受缓冲区和长度。如果你想设置一个字段,你可以这样做:pb.set_foo(std::string(dat

c++ - 使用 Google Protocol Buffer 的 CMake

我正在尝试使用cmake使用ProtocolBuffer构建我的小项目。有一个根目录,其中包含许多子目录以及许多库和可执行文件。我的第一个想法是将我的.proto文件放在子目录中,但是当我阅读thisanswer时我用它做了一个图书馆。但是当我尝试在我的可执行文件中包含消息头时,它找不到它。错误信息:fatalerror:msgs.pb.h:Nosuchfileordirectory#include"msgs.pb.h"^compilationterminated.我通过在其中创建一个目录“build”然后“cmake..&&make”来运行它。我看过了,似乎生成的文件被放入了buil

c++ - Boost.Asio 与谷歌 Protocol Buffer

我目前正在研究如何改进我们当前的c++网络手工序列化机制,以维护我们现有的二进制协议(protocol)。采用的第一种方法是使用Boost.Asio和Boost.Serialisation使用二进制序列化对其进行编码。无论如何,事实证明它比我们当前的手工实现要慢一些(10%)。任何人都有关于使用googleprotobuf和Boost.Asio的实际_real_work_经验?我在谷歌上搜索了示例,但只能想出这个示例:BoostAsiowithgoogleprotocolbufferssample有人在任何实际项目中这样做过吗?我对性能数据非常感兴趣,因为这必须非常快......

c++ - Python ctypes : how to free memory? 获取无效指针错误

我想从带有ctypes的C/C++库中获取一些字符串到python中。我的代码如下所示:lib中的代码:constchar*get(structsomething*x){[...]//bufisastringstreamreturnstrdup(buf.str().c_str());}voidfreeme(char*ptr){free(ptr);}Python代码:fillprototype(lib.get,c_char_p,POINTER(some_model)])fillprototype(lib.freeme,None,[c_char_p])//whatiwanttodohere

c++ - `memory_resource` 的用途和用途是什么?

标准C++17包含一个新的命名空间pmr,其中包括一组以memory_resource的名称分组的类。在网上搜了一下,发现很少有关于它的低俗信息,直接结果就是这个问题:pmr,尤其是pmr::memory_resource背后的主要思想是什么?把问题详细一点,我脑子里的一些问号是:它带来了什么新的东西,或者它解决了哪些限制?与allocator有什么区别?多态是否意味着可以选择运行时提供给容器构造函数的allocator?(例如用于测试目的)它对实现内存池或其他内存管理方案有帮助吗?上下文:为了创建memorypool分配器,我找到了有关此命名空间的信息。阅读像pool_options