logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

c/c++ g++默认编译调用成功,O2优化却发生Segmentation fault

一、背景:正常默认编译下,调用成功,没有发生任何错误,调用成功。但O2优化条件下,却发生了Segmentation fault错误。这一般表明代码存在内存错误访问的情况。二、检测代码发生Segmentation fault的位置:两种方式第一种1.编译代码添加-g参数2.unlimit -c unlimited,使代码发生Segmentation f

#c++
[c/c++] tcmalloc大空闲内存不释放问题

一、现象1.线上服务(内存分配采用tcmalloc)出现瞬时内存上涨的情况(如按G级别上涨),且长时间不释放内存。二、问题定位1.确定内存是泄漏还是tcmalloc的空闲内存(我这边的是空闲内存,并不是内存泄漏)1)可以通过增加代码,支持打印tcmalloc内存分配统计信息。char* stats_buffer = new char[4096];MallocExtension::instance(

c++ 析构函数为什么要加virtual

这是因为当用基类引用派生类的时候,如果此时对基类进行delete操作,对于没有虚函数析构函数,那么只会调用基类的析构函数,而对派生类的析构函数不会进行析构相关文章转载:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html

#linux#c++
c/c++ 使用比long long还大的类型

当发现long long的值不足以存放一些组合数值的时候,可以考虑使用__int128

[redis] linux下网络处理模块

一、描述1.linux下redis默认才用epoll来完成io的多路复用,将当前需要监听的io事件交由操作系统来完成。当有相应关注的io事件到来的时候,操作系统则会通知用户程序相关的信息,这样即使采用单线程也能监听多个io事件。2.采用单线程来处理网络请求,除了1的epoll外,还有两个原因:2.1 redis的数据结构是基于内存来实现的,因此其效率极高,即使单线程也能得到很高

c++ 析构函数为什么要加virtual

这是因为当用基类引用派生类的时候,如果此时对基类进行delete操作,对于没有虚函数析构函数,那么只会调用基类的析构函数,而对派生类的析构函数不会进行析构相关文章转载:http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html

#linux#c++
c/c++ 使用比long long还大的类型

当发现long long的值不足以存放一些组合数值的时候,可以考虑使用__int128

cuda 数组注意事项

cuda大致在使用的时候,会涉及到global memory,local memory, share memory, register memoy而其中在方法里面如果前缀什么都不加的话, 如float num[15], 这时候数组可能会存放在register memory或者在 local memory其中说明下local memory的作用,其是用于存放在方法中声明的动态数组、复杂数据结

cuda wrap执行方式

原文:At every instruction issue time, the SIMT unit selects a warp that is ready to execute and issues the next instruction to the active threads of the warp. A warp executes one common instruction at

cuda float转换为half计算

当发现float的性能瓶颈在带宽的话,可以考虑将float转换为half计算,其实对于浮点数进行计算,16浮点数half的精度已经很足够了。

    共 12 条
  • 1
  • 2
  • 请选择