编程语言
文章平均质量分 83
john-zeng
这个作者很懒,什么都没留下…
展开
-
Linux如何使用总计超过100%的内存
需求提出:数据库snapshot之所以有这个需求,是因为我手头有一个数据库工程,我们打snapshot的时候,是在愿进程调用一个fork,构造了一个子进程,在子进程dump数据的。但是数据库嘛,吃内存是肯定的,于是在我的渣渣虚拟机上,就遇到了内存占用在top观察超过60%,没法fork进行snapshot的窘境。于是我就想到这个问题:难道一个内存占用超过一定比例的进程,不能调用fork??毕竟,f...原创 2018-03-16 10:42:12 · 2575 阅读 · 0 评论 -
java字符串编码转换过程中发生了啥?
背景:有一个db链接,使用了latin1编码。有一个latin1的表,里面要存储UTF8或者GBK的中文。然后在java代码层,为了把正确编码的中文落库,使用了网上流传着的这么一段编码转换的代码public static String encodeLantin1(String s) { try { return new String(s.getBytes(...原创 2019-07-29 23:11:48 · 333 阅读 · 0 评论 -
gcc expected initializer before ‘class’
今天写代码的时候遇到了这个错误,想跟大家分享下。这是一个神奇的编译错误。报错的地方打开可能完全看不到哪里有问题,甚至你上网找也不好找到具体出错的原因。看报错内容,应该是class前缺少一些东西导致他认为出错了,比如函数定义最后少了一个分号之类的。但是打开出错的文件一看,可能就一个include,然后就是class了,根本看不出少了什么东西。这里,了解c编译流程的同学就知道了,include...原创 2019-03-06 00:18:20 · 4453 阅读 · 0 评论 -
java.lang.VerifyError: Expecting a stackmap frame xxxx
最近在测试一个java写的项目的时候遇到这个坑爹的问题。作为一个c++开发,看到这个报错表示慌的不行。这个错误后面就是一个Location,报出了具体调用的函数名,然后下面是描述: Expected a stackmap frame at this locaiton然后就是一堆看不懂的Bytecode,之后是一个Stackmap Table,同样看不懂。我相信给出的信息看不懂是我菜的缘...原创 2019-01-26 21:05:20 · 2895 阅读 · 0 评论 -
smart-deleteion-vim——让你的回删更智能
vim提供非常丰富的删除方式。normal模式下:x——直接删除某个字符 dd——删除整行 dw——从当前光标开始,删除到单词末尾 d^——从当前光标开始,往回删除到行首 d&——从当前光标开始,删除到行尾 dj——删除当前行以及下一行 dk——删除当前行以及上一行 。。。对,d可以跟各种移动方式组合,只要你熟悉vi内的光标移动,你可以把d命令玩出花来。inse...原创 2019-01-26 20:46:12 · 322 阅读 · 0 评论 -
iterm2高级应用
自动切换profile先上文档 profile-switching经常用这个功能来区分服务器和本地环境。设置多个不同色调的profile,检测到服务器的时候,切换到高亮的profile,本地就切换回来。对于服务器环境使用GBK编码的情况也很实用。具体方法是在preference->profile里面,选中对应的profile,然后切换到advanced,下面有一个automati...原创 2018-09-05 19:44:04 · 7460 阅读 · 0 评论 -
ubuntu16.04默认安装的bochs出现Fatal IO error
这个问题实际上非常奇怪,因为我的img只是一个简单的mbr而已,上面还什么都没有,就是hello world。但是在debuger界面点了continue之后,hello world是显示出来了,但是bochs挂了。更加诡异的是,每次挂掉的时候,倒数第二个错误信息总是不同的。还好最后一个信息相同:Debug: In file ../src/unix/threadpsx.cpp at line 26...原创 2018-05-13 01:31:46 · 942 阅读 · 0 评论 -
一次由Erlang垃圾回收导致的内存泄漏
最近有一个erlang的服务因为oom被kernel kill掉了, 由于从监控来说这个服务确实是内存不断增长。所以这个服务应该在哪里有内存泄漏才对。于是我又一次开始定位这个问题。定位到底哪个进程占用了最多的内存由于在另一个节点有一个没有crash,但是内存仍旧很高的节点,所以这个问题处理起来很简单。erlang提供了完整的运行时系统debug环境。这里我们用etop,根据memory排序,查看具...原创 2018-05-05 14:26:49 · 887 阅读 · 0 评论 -
clang-tags--上下文关联的c++调用搜索工具及其vim脚本
实际上,用vim的一个很大的缺点,是没有一个好用的,能理解上下文的c++调用关系搜索工具以及代码补全工具。在IDE里面,鼠标右键查找引用,查找调用,出来的结果是经过语法分析的,补全也是根据上下文头文件弄的。但是vim里面没有这个东西,毕竟vim是编辑器,他不知道编译信息。这个问题从我开始工作,就困扰着我,一直是我没法愉快使用vim写cpp的原因,毕竟菜。后来,有了clang,以及clang com...原创 2018-03-11 11:45:56 · 831 阅读 · 0 评论 -
一篇文章搞懂c语言常量与指针的几个排列组合
这个也是一个比较经典的面试题。也很多人挺纠结的,而且我发现挺多人搞不清楚的。这里先说几个结论,后面在细细验证const int 和 int const是一样的。编译器都认为是int const类型星号,以及星号之后的内容,只修饰右侧的一个变量所以很简单了指向int常量的指针 const int *a , int const * a,都是对的指向int的常量指针int * const a指向int常...原创 2018-03-10 21:04:15 · 6150 阅读 · 0 评论 -
c语言的sizeof到底应该返回什么?
我发现这个面试问题难住了蛮多人的。总的来说,sizeof(x)返回的是该值x占用的存储空间的大小。但是,问题就出在这个"x"到底是啥?#include <stdio.h>#include <string.h>#define HELLO_STR "hello"#define HELLO_STR2 "hello\0"int hello(int input[3][3])...原创 2018-03-10 20:17:48 · 10775 阅读 · 0 评论 -
编译链接的时候静态库顺序导致符号未定义问题详解
前情概要接入新库的时候遇到符号位定义问题。有人跟我说改一下库的顺序,就能解决问题。我试了下,嗯,问题是解决了。但是我总觉得库之间不应该有依赖关系,毕竟链接库就是个找符号的问题,如果有依赖,那a,b两个库,相互依赖,顺序怎么整呢?大型的软件,岂不是加一个库就要弄死人?带着这个疑问我做了一些小实验,来看一下一下库位置的顺序到底是如何影响符号未定义问题的。问题根源之所以链接顺序改变可以解决符...原创 2019-08-15 19:38:02 · 4179 阅读 · 0 评论