草庐IT

malloc_time

全部标签

c++ - 使用自定义时区将 boost::posix_time::ptime 转换为字符串

我有一个boost::posix_time::ptime实例并希望使用给定的boost::local_time::time_zone_ptr将其转换(“格式化”)为字符串实例。下面是一个显示我目前拥有的测试程序。它转换ptime到local_date_time据我了解,除了时间信息外,它还表示时区。在2011-08-1812:00:00UTC运行这个程序时,我期望输出2011-08-1814.00.00UTC+02:00.相反,它打印2011-08-1812:00:00UTC+00:00.即相对于打印的时区,打印的时间是正确的,但它不在我用来创建boost::local_time::l

c++ - boost::mutex 和 boost::timed_mutex 的区别

根据Boost文档,boost::mutex和boost::timed_mutex应该是不同的。第一个实现了LockableConcept,第二个实现了TimedLockableConcept。但是如果你看一下源代码,你会发现它们基本上是一样的。唯一的区别是锁类型定义。您可以在boost::mutex上调用timed_lock或使用带超时的boost::unique_lock。typedef::boost::detail::basic_timed_mutexunderlying_mutex;classmutex:public::boost::detail::underlying_mut

c++ - 在 malloc_error_break 中设置断点以在 C++ 中进行调试

我正在编写一个接受2个命令行参数的程序:a和b分别。只要a都好尽快a>17.5程序抛出以下错误:释放对象的校验和不正确-对象可能在释放后被修改我已将问题缩小到以下代码:for(inta=0;aviTmp(iK-i);fill(viTmp.begin(),viTmp.end(),2);for(intb=0;b删除后一段代码,消除了错误。我也在使用valgrind来调试内存,但我还没有找到任何解决方案。这是valgrind报告的拷贝:Reporthostedinpastebin编辑我用调试标志编译了程序:g++-g-O0-fno-inlineprogram.cpp然后使用valgrind运

c++ - Visual Studio 2010 C++ : malloc()/HeapAlloc always allocates new page for even smallest alloc size

我有一个相当大的C/C++项目,我一直在试图找出它消耗过多内存的原因(通过任务管理器中的“工作集”判断)。我终于找到了奇怪的行为,即使是最小的malloc()请求,它也会分配一个全新的4k页面。像这样的代码for(intbla=0;bla这应该会增加区区10KB的内存消耗,最终会增加4MB,因为它分配了1000个4kB。真正令人沮丧的部分是我无法将其作为独立文件重现。仅包含上述代码的小型应用程序就可以正常工作。只有大项目才会表现出错误的行为。直接回答一些明显的建议:我正在引入与大项目相同的库,并确保编译标志相同"new"的行为方式相同在Debug和Release模式下都会发生我真的追踪

c++ - get_time 未按预期运行

我在尝试使用put_time和get_time函数时遇到了一些问题。我拿了这段代码:#include#include#include#includeintmain(){std::tmt={};std::istringstreamss("2011-Februar-1823:12:34");ss.imbue(std::locale("de_DE.utf-8"));ss>>std::get_time(&t,"%Y-%b-%d%H:%M:%S");if(ss.fail()){std::cout来自here.但是,当同时使用gcc版本8.8.1和clang版本6.0.0进行编译时,我得到解析失败

c++ - boost::filesystem::last_write_time 在哪里?

这是我收到的链接器错误。我的所有其他boost::filesystem事情都在解决。我不明白为什么这个不。以为是boost1.40的问题,升级到1.44,问题依旧。我正在使用#defineBOOST_FILESYSTEM_VERSION3但我没有看到在这种情况下未提供last_write_time的提及。似乎缺少底层实现,即使存在api部分。1>TestPruner.obj:errorLNK2019:unresolvedexternalsymbol"void__cdeclboost::filesystem3::detail::last_write_time(classboost::fi

c++ - malloc 失败条件

我正在复习c,重做一些旧的练习,并在运行此代码段时得到一些不寻常的结果(我知道它泄漏但想了解系统允许多少..)#include#includeintmain(intargc,char*argv[]){void*page=0;intindex;index=0;while(1){page=malloc(1073741824);//1GBif(!page)break;++index;}printf("memoryfailedat%d\n",index);return0;}我实际上得到:memoryfailedat131070这表明它认为它分配了131070x1GB内存(大量泄漏)我之前知道m

c++ - 如何从 operator new 或 malloc 为 mremap 获取页对齐内存

有没有办法分配一block内存,使其起始地址与给定的页面大小对齐?请注意,我不想在分配block后计算对齐地址。原因是在某些时候我将不得不在block上调用mremap():mremap要求旧地址参数是页面对齐的。 最佳答案 mremap只能安全地用于由mmap分配的内存区域,这些内存区域本质上是页面对齐的。在其他任何事情上使用它都是危险的(正式的,未定义的行为)并且可能看起来有效但可能会以您不会立即看到的方式严重破坏事物。 关于c++-如何从operatornew或malloc为mre

c++ - boost::posix_time::milliseconds 和 boost::chrono::milliseconds 之间的区别

我正在尝试使用condition_variable_any::timed_wait()当我将boost::chrono::millisecond传递给函数时,它无法编译:error:nomatchfor‘operator+’in‘boost::get_system_time()+wait_duration’但是,如果我将boost::posix_time::milliseconds传递给它编译的函数。问题是我不明白两者之间的区别。他们都声称是持续时间。但据我了解posix时间,它代表自纪元以来的时间,对我来说这意味着boost::posix_time::millisecondsp(10

c++ - C++ 中 SSE 的内存对齐,_aligned_malloc 等效?

我想知道如何将此C代码转换为C++以实现内存对齐。float*pResult=(float*)_aligned_malloc(length*sizeof(float),16);我看过here然后我试了这个float*pResult=(float*)__attribute__((aligned(16)));还有这个float*pResult=__attribute__((aligned(16)));但两者都给出了类似的错误。error:expectedprimary-expressionbefore'__attribute__'|error:expected','or';'before'