随笔分类 -  理解

摘要:实际和之前的free命令是有点类似的。 不过free更专注应用,这个更专注理解。 概述 想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RE 阅读全文
posted @ 2017-11-22 23:55 dzqabc 阅读(1619) 评论(0) 推荐(0) 编辑
摘要:Literal 字面值 字面量 Literal, 在程序语言中,指表示某种数据值的符码。如,123 是整数值符码, 3.14 是浮点值符码,abcd 是字串值符码,True, False, 是逻辑值符码,等。 Literal 代表的是数据值的本身,区别于“变量”(Variable, 即容纳数据值的 阅读全文
posted @ 2017-01-31 20:24 dzqabc 阅读(1156) 评论(0) 推荐(2) 编辑
摘要:我们一直在告诉开发人员一定要使用绑定变量,而你是否真正了解绑定变量的有缺点呢?绑定变量可以减少SQL分析,节约共享池的空间。但是在某些情况下,使用绑定变量也是有缺点的。比如说,如果使用绑定变量,那么优化器就会忽略直方图的信息,在生成执行计划的时候可能不够优化。另外一个有趣的问题是,如果一张表有几十万 阅读全文
posted @ 2016-03-16 22:33 dzqabc 阅读(1269) 评论(0) 推荐(0) 编辑
摘要:VS2013出来了,对于C++来说,最大的改变莫过于对于C++11新特性的支持,在网上搜了一下C++11的介绍,发现这篇文章非常不错,分享给大家同时自己作为存档。 原文地址:http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/ 阅读全文
posted @ 2016-02-26 23:08 dzqabc 阅读(654) 评论(0) 推荐(0) 编辑
摘要:template class Widget; // uses "class"template class Widget; // uses "typename" 答案:没什么不同。在声明一个 template type parameter(模板类型参数)的时候,class 和 typename 意味... 阅读全文
posted @ 2014-10-25 22:16 dzqabc 阅读(2833) 评论(0) 推荐(2) 编辑
摘要:为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改... 阅读全文
posted @ 2014-06-15 10:43 dzqabc 阅读(1280) 评论(0) 推荐(0) 编辑
摘要:Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。 JavaScript 语言就采用这种机制,来解决单线程运行带来的一些问题。 本文参考C. Aaron Cois 的《Understanding The Node.js Event Loop》,解释什么是 Event Loop,以及它与 JavaScript 语言的单线程模型有何关系。 想要理解 Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务。 如果有很多任务需要执行,不外乎三种解决方法。(1)排队。因为一个进程一 阅读全文
posted @ 2013-10-24 01:25 dzqabc 阅读(290) 评论(0) 推荐(0) 编辑
摘要:0.1.守则01:把C++看做一个语言的集合,而不是单一的语言 早期的C++只是叫"C with classes",但发展到今天已经成为一个多重泛型编程语言(Multi-paradigm programming language),它具有4种“子语言”:C 面向对象的C++ 模板C++ STL 0. 阅读全文
posted @ 2013-08-01 23:57 dzqabc 阅读(310) 评论(0) 推荐(0) 编辑
摘要:扇入:该模块被调用的次数,扇入大,说明该模块的复用性好。扇出:该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。因此,扇入大是好事,扇出大是坏事。 阅读全文
posted @ 2013-05-16 07:52 dzqabc 编辑
摘要:SOCK5代理服务器 : 被代理端与代理服务器通过“SOCK4/5代理协议”进行通迅(具体协议内容可查看RFC文档)。SOCK4代理协议可以说是对HTTP代理协议的加强,它不仅是对HTTP协议进行代理,而是对所有向外的连接进行代理,是没有协议限制的。也就是说,只要你向外连接,它就给你代理,并不管你用的是什么协议,极大的弥补了HTTP代理协议的不足,使得很多在HTTP代理情况下无法使用的网络软件都可以使用了。(例如:OICQ、MSN等软件)SOCK5代理协议又对前一版进行了修改,增加了支持UDP代理及身份验证的功能。它不是“协议代理”,所以它会对所有的连接进行代理,而不管用的是什么协议。HTTP 阅读全文
posted @ 2013-03-04 22:38 dzqabc 阅读(356) 评论(0) 推荐(0) 编辑
摘要:引子 “请写一个Singleton。”面试官微笑着和我说。 “这可真简单。”我心里想着,并在白板上写下了下面的Singleton实现: 1 class Singleton 2 { 3 public: 4 static Singleton& Instance() 5 { 6 static Singleton singleton; 7 ... 阅读全文
posted @ 2012-07-20 01:00 dzqabc 阅读(291) 评论(1) 推荐(0) 编辑
摘要:定时器的实现 通过Reactor机制,还可以很容易的实现定时器的功能,使用方式如下。 编写一个事件反应器,重载handle_timeout()方法,该方法是定时器的触发时间到时,会自动触发该方法。 通过Reactor的schedule_timer()方法注册定时器。 启动reacotr的handle_events()事件分发循环。 当不想使用定时器时,可以通过Reactor的... 阅读全文
posted @ 2012-07-16 22:51 dzqabc 阅读(386) 评论(0) 推荐(0) 编辑
摘要:在服务器端使用Reactor框架 使用Reactor框架的服务器端结构如下: 服务器端注册两种事件处理器,ClientAcceptor和ClientService ,ClientService类负责和客户端的通信,每一个ClientService对象对应一个客户端的Socket连接。 ClientAcceptor专门负责被动接受客户端的连接,并创建ClientService对象。这样,在一个... 阅读全文
posted @ 2012-07-16 22:50 dzqabc 阅读(499) 评论(0) 推荐(0) 编辑
摘要:在Socket编程中,常见的事件就是"读就绪","写就绪",通过对这两个事件的捕获分发,可以实现Socket中的异步操作。 Socket编程中的事件处理器 在前面我们已经介绍过,在ACE反应器框架中,任何都必须派生自ACE_Event_Handler类,并通过重载其相应会调事件处理函数来实现相应的回调处理的。在Socket编程中,我们通常需要重载的函数有 handle_input()当I... 阅读全文
posted @ 2012-07-16 22:49 dzqabc 阅读(512) 评论(0) 推荐(0) 编辑
摘要:1.ACE反应器框架简介 反应器(Reactor):用于事件多路分离和分派的体系结构模式 通常的,对一个文件描述符指定的文件或设备, 有两种工作方式: 阻塞与非阻塞。所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待状态, 直到有东西可读或者可写为止。而对于非阻塞状态, 如果没有东西可读, 或者不可写, 读写函数马上返回, 而不... 阅读全文
posted @ 2012-07-16 22:48 dzqabc 阅读(360) 评论(0) 推荐(0) 编辑
摘要:最简单的知识有时间记忆回忆起来却最难. 1.类型转换会生成临时变量 (const std::vector<ACE_INT32>)类型转换将导致生成新的临时变量. 所以先做类型转换,再取其地址或其内部属性地址时危险的. 1.1.signed、unsigned 分别指的是signed int和unsig 阅读全文
posted @ 2012-06-17 23:27 dzqabc 阅读(745) 评论(0) 推荐(0) 编辑
摘要:静态全局变量就是在main函数调用之前调用的.静态局部变量则在第一次使用之前调用的. 静态变量的初始化是在首次执行到初始化语句时间执行的,编译时在初始化语句之前放置一个标志位,每次进行判断,倘若需要初始化则执行初始化操作,否则不执行. 阅读全文
posted @ 2012-06-04 22:22 dzqabc 阅读(1594) 评论(0) 推荐(0) 编辑
摘要:单实例模式Singleton加锁的作用:1.首次调用Instance时的初始化加锁,防止多次New操作。 阅读全文
posted @ 2012-05-27 23:09 dzqabc 阅读(326) 评论(0) 推荐(0) 编辑
摘要:C++为类中提供类成员的初始化列表类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员2.进入构造函数后在构造函数中执行一般计算 1.类里面的任何成员变量在定义时是不能初始化的。 2.一般的数据成员可以在构造函数中初始化。 3.const数据成员必须在构造函数的初始化列表中初始化。 4.static要在类的定义外面初始化。 5.数组成员是不能在初始化列表里初始化的。 6.不能给数组指定明显的初始化。 这6条一起,说明了一个问题:C++里面是不能定义常量数组的!因为3和5的矛盾。这个事情似乎说不过去啊?没有办法,就只好转而求助于静态数据成员。到此,我的问题解决。. 阅读全文
posted @ 2012-05-27 00:37 dzqabc 阅读(465) 评论(0) 推荐(0) 编辑
摘要:赋值函数需要返回当前被赋值对象的引用(非常量引用)void test(){ int h; int & g = (h = 1);}上面操作并未告警,所以.... 阅读全文
posted @ 2012-02-21 22:37 dzqabc 阅读(376) 评论(0) 推荐(0) 编辑