记一次程序排错与std::getline】的更多相关文章

今天忙活了半个下午,查找正式环境上面一个程序的问题.这个程序的作用是监控文件夹,处理每一个文件,分析每个文件的每行记录,然后将这个文件拆分成两个结果文件投放到另外两个不同的目录下面去,当处理完这个文件后,将源文件剪切到备份文件夹下面去.程序的整体逻辑很简单,只用了一天的时间就完成了.可在测试工作完成后,部署到正式环境上面后,今天维护人员突然说有问题,说程序一直在处理一个文件,并且是死循环,处理的结果文件一直在增大,都已经有50多G了.我根据他的描述,说是死循环,一直在处理某个文件.然后我把这个文…
记一次zabbix排错 故障现象 1.在/var/log/zabbix/zabbix_server.log中出现以下报错: 12106:20190314:090947.010 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES) 2.在web界面出现如下界面 事后分析原因 问题出在数据库配置上,本次部署环境的m…
前言 在线上的程序中,我们可能经常会碰到程序卡死或者执行很慢的情况,这时候我们希望知道是代码哪里的问题,我们或许迫切希望得到代码运行到哪里了,是哪一步很慢,是否是进入了死循环,或者是否哪一段代码有问题导致程序很慢,或者出现了线程不安全的情况,或者是某些连接数或者打开文件数太多等问题,总之我们想知道程序卡在哪里了,哪块占用了大量的资源. 此时,或许通过线程堆栈的分析就能定位出问题. 如果能深入掌握堆栈分析的技术,很多问题都能迎刃而解,但是线程堆栈分析并不简单,设计到线上的排错问题,需要有一定的知识…
getline reads characters from an input stream and places them into a string: getline从输入流中读取字符, 并把它们转换成字符串. getline(input, str, delim), 默认的分隔符是'\n'字符. 参数 input - 流中获取数据str - 把数据转换成字符串delim - 分隔符 例一: #include <string> #include <iostream> #includ…
为了增加32位程序的用户虚拟内存的使用量,我们使用了/LARGEADDRESSAWARE编译选项来使32位程序可能使用到3gb的内存,能否使用到3gb内存也跟平台.系统和设置有关系,现摘抄部分作为参考具体可参考微软官方网站[i]: Limits on memory and address space vary by platform, operating system, and by whether the IMAGE_FILE_LARGE_ADDRESS_AWARE value of the …
小程序突然出问题,题库加载不了,程序正常,测试环境同样环境,同样代码都正常,但是线上数据秒过期,怀疑redis过期时间设置有问题,但是检查配置没问题,写入数据带过期时间也正常. redis设置key: SET cache_page "www.google.com" #设置key EXPIRE cache_page #设置过期时间 TTL cache_page #查看还有多少时间过期 EXPIRE cache_page #重新设置过期时间 TTL cache_page 自己新建key测试…
   记录一次服务出错排错的过程,很多新手出了点错不百度直接巴拉巴拉的问,一般老手根据经验可以给出一点建议,但是由于个体环境的差异并不适用,反而埋怨起来.这种真的无F**K可说,所以要培养自己的排错能力是很重要的,这里简单的抛砖引玉的举出个流程出来希望有所帮助.问问题之前善用各大搜索引擎以及博客论坛的搜索功能! # systemctl status smb.service -l â— smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/…
现在做小程序的越来越多,商家推广也是一个瓶颈,谁不发点红包,都很难找到人来用你的微信小程序了.于是不管你开发什么小程序功能,你或多或少都要用到小程序来发红包吧.  我们自己之前做公众号发红包,做了两三年了,然后后面小程序火了,开始做小程序发红包,在开发过程中也遇到一些坑.下面我们给大家分享下我们如何解决的. 小程序如何发红包.直接上来先说跳坑方法吧,没耐心的,可以直接看完我这段就赶紧去改你的代码就行了,有耐心的,或者你可能除了这个坑以外,还有其他的坑的,那你就仔细看完我后面分析的内容. 小程序发…
学习参考周莫烦的视频. Variable:主要是用于训练变量之类的.比如我们经常使用的网络权重,偏置. 值得注意的是Variable在声明是必须赋予初始值.在训练过程中该值很可能会进行不断的加减操作变化. placeholder:也是用于存储数据,但是主要用于feed_dict的配合,接收输入数据用于训练模型等.placeholder值在训练过程中会不断地被赋予新的值,用于批训练,基本上其值是不会轻易进行加减操作. placeholder在命名时是不会需要赋予值得,其被赋予值得时间实在feed_…
前言 最近接了个任务,需要把代码移植到armv7平台,搜寻相关方法,了解到可以利用交叉编译工具如:gcc-linaro-arm-linux-gnueabihf.把自己依赖的第三方库代码和自己代码分别编译就好.后来公司买了个树莓派,我直接在树莓派上编代码了,过程中没有很大的问题,记录下. 1.确定第三方依赖库是否可以移植 我代码确实依赖了不可移植的如mkl库,这是intel相关的,所以移植到arm肯定不行,于是换kaldi支持的另一种库,openblas.先替换然后让代码正常调用openblas.…