自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

莫慌的博客

文字工作者

  • 博客(17)
  • 收藏
  • 关注

原创 Redis(1)——hiredis,Redis的官方CAPI

最近在恶补分布式的知识储备,看到分布式计算常用的中间件redis,发现在公司从来没用过????。于是想花点时间专门学习一下,顺便用博客记录。redis安装redis的安装非常简单,我使用的系统是Ubuntu,apt-get install redis-server一个命令便可以完成安装。可以说非常友好了。接着使用redis-server命令直接启动,界面还是比较炫酷的。可以看到redis默认监...

2020-01-31 23:30:24 847

原创 cross-DLL problem

前段时间遇到一个跨dll分配内存的坑(所谓的cross-DLL problem)。在这里记录一下。现象一个DLL(A)对外暴露的接口函数入参是vector&,功能是返回一个对象的列表。另一个DLL(B)在调用这个接口之后崩溃。临时解决方案是在调用接口前进行reserve,就不崩溃了。另外有意思的是,相同代码在linux环境下不会发生崩溃。原因接口入参设计成vector本来是想利...

2020-01-27 17:39:40 919

原创 繁简转换

之前在公司项目中做过一个繁简转换的需求,在这里做个总结吧。编码介绍GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩...

2020-01-10 01:17:17 1017

原创 线程池初探

线程池是一种通过空间换时间提高程序性能的技术。总体流程为调用者->线程池->任务队列->通知worker线程worker线程->任务队列取任务->执行任务其实整套机制可以视作生产者-消费者模型,调用者生产任务,worker线程消费任务。其中用到的同步机制有互斥锁、条件变量。互斥锁的粒度为一个任务队列用一把锁,加入任务或取出任务时需要加锁。条件变量是为了实现生产...

2020-01-08 20:21:54 161

原创 数组越界理解

这是我在坐顺风车的路上想到的点子,可能会有偏颇之处,欢迎指出。想象一个场景:一条无限长的道路上(内存), 均匀地排列着路灯(类)。每个路灯相当于一个对象,它有许多参数(数据成员),比如灯泡、电线等。另外也有很多对路灯的操作(成员函数/方法),比如观察灯泡亮度(读)、修灯泡、换电线(写)等。所有路灯组成了一个路灯数组,每个路灯对象占用一个下标/地址,且在内存中均匀分布。设路灯个数为max_num...

2020-01-08 01:16:01 396

翻译 排名前25位的C++API设计错误以及如何避免它们

原文链接:https://www.acodersjourney.com/top-25-cplusplus-api-design-mistakes-and-how-to-avoid-them/作者:Deb Haldar对于许多C++开发人员而言,API设计可能会在其优先级列表中排名第3或第4。大多数开发人员纷纷涌向C++,寻求原始力量和控制权。因此,性能和优化是占据这些开发者百分之八十时间的想法...

2019-06-07 22:44:44 473

翻译 使用 C++ 11 智能指针要避免的前10个错误

我喜欢新的 C++ 11 智能指针。在许多方面, 对于许多讨厌管理自己记忆的人来说, 他们是天赐的。在我看来, 它使向新来者教授 C++ 变得容易得多。然而, 在我广泛使用它们的两年多时间里, 我遇到了多个案例, 在这些情况下, 不正确使用 C++ 11 智能指针会使程序效率低下或只是崩溃。我在下面对它们进行了分类, 以便于参考。在我们开始之前, 让我们来看看一个简单的飞机类, 我们将用它来说...

2019-05-02 20:36:19 695

翻译 多线程介绍

原文地址https://www.internalpointers.com/post/gentle-introduction-multithreading现代计算机能够同时执行多个操作。在硬件改进和更智能的操作系统的支持下,此功能使您的程序在执行速度和响应速度方面运行得更快。 编写利用这种功能的软件既迷人又棘手:它要求您了解计算机机箱下发生的情况。在第一集中,我将尝试切开线程的表面,这是操作系...

2019-03-31 23:17:50 201

翻译 10种常用的软件架构模式

有没有想过大型企业规模的系统是如何设计的?在开始主要的软件开发之前, 我们必须选择一个合适的体系结构, 为我们提供所需的功能和质量属性。因此, 在将它们应用到我们的设计之前, 我们应该了解不同的体系结构。什么是架构模式?根据维基百科,体系结构模式是针对给定上下文中软件体系结构中常见问题的通用、可重用的解决方案。体系结构模式类似于软件设计模式, 但具有更广泛的范围。在本文中, 我将简要解...

2019-03-14 23:10:45 1020

原创 C++部分函数调用形式耗时测试

背景最近项目组内在搞性能优化,一位同事在对比了两种方案的性能差异后,说出了他推测的原因(因为是被封装成库函数的两种实现方式):慢的那种采用了泛型实现即模板函数,快的那种采用了函数指针的实现。我当时觉得不太对,因为在我理解里模板是牺牲编译时间换取运行时间的典型,编译器会自动生成替换模板后的函数,再慢也是一般函数调用级别的;而函数指针则有一次寻址操作,照理应该是会慢一拍。晚上下班回家便进行了这次测试...

2019-03-07 00:33:53 3141

原创 重做PATA1009

17年刚开始备考PAT的时候做过这道题,吭哧吭哧做了半天最后只能过4个case,第一个case死活过不了。可以参考下之前的博客https://blog.csdn.net/wuermohuang/article/details/53998082今天重新做了一遍,case1还是过不了…开始找原因,最后发现case1最后算出的结果应该是有负数的…把int(result[i] * 100) > 0...

2019-02-22 22:17:20 168

原创 测试驱动开发

Dream code first, before you start implementing it.

2019-02-20 01:07:47 832

原创 使用脚本和.gdbinit提高开发效率

背景介绍做linux平台的C++服务开发,工作中往往频繁地用到gdb调试工具。gdb有很多种启动方式,我知道的就有gdb、gdb [program]、gdb [program] [pid]这三种方式,其中我最常用到的是后两种。gdb [program]直接启动与gdb [program] [pid] attach到进程上相比,优点在于前者可以随时通过run命令重启程序,而attach的方式要分成...

2019-02-03 02:49:17 1802

原创 一个局部变量引发的惨案

这两天在公司写一个业务上的工具,在前人基础上开发一个新功能,就是说框架已经搭好了。照理说应该很快开发完了,编码也确实进行得很快(埋下深坑)。结果进行调试的时候,有一个地方崩溃死活定位不到,花了我一晚上加一早上,所以想借博客记录一下。整个程序结构简单,共有两个线程A和B,A不断产生数据放在内存里,而B则不断从A取得数据并处理。原程序(简化):#include <windows.h&...

2018-08-10 01:18:46 285

原创 初尝WSL(Windows Subsystem for Linux)

微软的WSL发布也有一段时间了,一直未尝试过。windows兼容linux子系统,再联系最近微软windows部门整改,不由感叹。由于工作是在windows环境下开发服务器程序,对主流服务器操作系统linux知之甚少,只在实习的时候接触过。尝试过在windows下安装linux虚拟机,但是略显麻烦和鸡肋,所以这次想尝试一下WSL。安装WSL win10商店里有多种linux发行版本供安装,...

2018-04-18 00:54:18 18581 2

原创 strcat

3.24面试一家小公司。笔试题很多是《程序员面试宝典》上的原题,基本难不住。 除了其中一道“不调用字符串库函数,自己编写一个函数实现strcat的功能。C中strcat原型为char* strcat(char* dct,const char* src)。” 本科C语言课估计学过strcat,但是很久没用忘记这个函数是实现什么功能了,一脸蒙蔽。结果写了一个根据源字符串分割目的字符串的代码。实际上,

2017-03-26 19:50:46 1272

原创 3.24

杭州电子科技大学2012级,电子信息技术及仪器专业。 知道CSDN社区很久了,也有朋友在上面开设博客写文章,但是自己却没有丝毫这种想法。最近由于一些原因,下定决心进入计算机行业。本科专业是电子相关,所以只能算是个脱离门外汉的入门选手,打算用C从PAT题库入手逐渐学习数据结构和算法相关知识。本博客旨在记录学习过程中编写的代码和遇到的问题,不希望把时间花费在解决重复问题上。请多指教。

2016-03-24 19:14:23 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除