linux
文章平均质量分 79
hintonic
这个作者很懒,什么都没留下…
展开
-
泡泡龙算法模拟实现C++版
#include #include #include #include #include #include using namespace std; struct Bubble{ int iColor; Bubble() : iColor( 0 ) { } Bubble( int iSetColor ) : iColor( iSe原创 2013-12-16 18:50:02 · 3561 阅读 · 0 评论 -
chrome base 类库 manual 内存对齐
// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// AlignedMemory is a POD ty原创 2013-12-26 14:55:28 · 1013 阅读 · 1 评论 -
samb3.6.0源码编译安装
http://genime.blog.163.com/blog/static/167157753201210445128757/ 串口编程 socket中read、write、send、recv函数的比较samba源码编译安装 2012-11-04 17:04:33| 分类:开发| 标签: |举报 |字号大中小订阅转载 2014-01-21 14:55:52 · 763 阅读 · 0 评论 -
chrome 中在栈上创建指定字节对齐的POD类型的static数据的一种可移植的方法
// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// AlignedMemory is a POD ty原创 2014-01-16 16:44:02 · 834 阅读 · 1 评论 -
x86平台读取cpu支持sse2指令集的代码,以及原子操作的代码
// This module gets enough CPU information to optimize the// atomicops module on x86.#include #include "base/atomicops.h"#include "base/basictypes.h"// This file only makes sense with atomic原创 2014-01-16 16:54:20 · 1651 阅读 · 0 评论 -
Chrome中的RunnableAdapter模板类适配多种函数
#include #include #include #include using namespace std;template struct CallbackParamTraits { typedef const T& ForwardType; typedef T StorageType;};// The Storage should原创 2014-01-23 15:03:15 · 878 阅读 · 0 评论 -
全局序列号的一种生成方法
#ifndef BASE_ATOMIC_SEQUENCE_NUM_H_#define BASE_ATOMIC_SEQUENCE_NUM_H_#include "base/atomicops.h"#include "base/basictypes.h"namespace base {class AtomicSequenceNumber;// Static (POD) At原创 2014-01-16 16:59:24 · 1124 阅读 · 0 评论 -
linux server 查看进程堆栈,看线程在忙啥
gdb -ex "thread apply all bt" -batch -p $p原创 2014-02-20 17:58:24 · 797 阅读 · 0 评论 -
拷贝构造函数详解
http://blog.chinaunix.net/uid-21411227-id-1826742.html 1.什么是拷贝构造函数:CA(const CA& C)就是我们自定义的拷贝构造函数。可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类型的一个引用变量,该参数是const类型,不可变的。例如:类X的拷贝构造函数的形式为X(X&转载 2014-02-25 20:10:53 · 584 阅读 · 0 评论 -
Adlist 双向链表的实现 redis
/* adlist.h - A generic doubly linked list implementation * * Copyright (c) 2006-2012, Salvatore Sanfilippo * All rights reserved. * * Redistribution and use in source and binary forms, wit转载 2014-03-20 19:54:00 · 560 阅读 · 0 评论 -
chrome源码解析系列:Chrome消息系统(1)
chrome中有很多闪光点地方,它的消息系统就一快纯金,要看chrome 源码,必须要过消息系统这关。 本来这本部打算写在上一章的,考虑内容涵盖范围太广的,打算另开一章来写 chrome的消息系统,回头在去上一章做个比较有概括力的总结。本章的思路是按照一下逻辑来展开的: 1:消息系统的概述(消息系统静态模型和动态模型的一个简单的介绍) 2:一个消息系统的生死因果(细说Mes转载 2014-01-09 19:53:23 · 914 阅读 · 0 评论 -
编译时给出警告的小trick,利用下标溢出的警告
template inline Dest bit_cast(const Source& source) { // Compile time assertion: sizeof(Dest) == sizeof(Source) // A compile error here means your Dest and Source have different sizes.原创 2013-12-24 15:37:53 · 645 阅读 · 0 评论 -
vptr被设置内容的时机
http://eriol.iteye.com/blog/1167737 关于虚函数的背景知识用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。多态用虚函数来实现,结合转载 2013-12-18 12:43:25 · 799 阅读 · 1 评论 -
c++对象内存模型【内存布局】
http://www.th7.cn/Program/cp/201301/122774.shtml #类中的元素0. 成员变量 1. 成员函数 2.静态成员变量 3. 静态成员函数 4.虚函数 5. 纯虚函数#影响对象大小的因素0. 成员变量 1. 虚函数表指针(_vftptr) 2.虚基类表指针(_vbtptr) 3. 内转载 2013-12-18 12:25:06 · 575 阅读 · 0 评论 -
chrome的base库中求最接近n的2的多少次幂,也就是k=log2(n); 求k的算法
// Copyright (c) 2009 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// This file defines some bi原创 2013-12-24 10:57:22 · 1486 阅读 · 3 评论 -
Chrome源码剖析、上
Chrome源码剖析、上 http://www.cnblogs.com/hibernate6/archive/2011/04/02/2522304.html 原著:duguguiyu。 整理:July。 时间:二零一一年四月二日。 出处:http://blog.csdn.net/v_JULY_v。 说明:此Chrome源码剖析很大一部分编辑整理自此博客:http转载 2014-01-08 16:17:57 · 578 阅读 · 0 评论 -
通过/proc查看Linux内核态调用栈来定位问题
前几天碰到一个问题:一个进程运行过程中挂死了,把gdb挂上去之后bt打印的内容为空,后来通过查看 /proc 文件系统,查看程的调用栈,才发现是发消息给内核态程序时,内核态一直没有响应,导致用户态进程挂死。刚好在网上看到一篇描述通过 /proc 文件系统来定位问题的文章,这篇文章讲解得比较清楚,因此尝试翻译出来。原文地址:Peeking into Linux kernel-land using转载 2014-01-08 17:25:06 · 20397 阅读 · 2 评论 -
Memory Barrier in Compiler and CPU
http://www.cnblogs.com/whyandinside/archive/2012/06/24/2560099.htmlMemory Barrier in Compiler and CPUMemory barrier, is a type of barrier and a class of instruction which causes a CPU or com转载 2013-12-24 11:17:31 · 822 阅读 · 0 评论 -
How Would You Get the Count of an Array in C++?
http://blogs.msdn.com/b/the1/archive/2004/05/07/128242.aspxThe question is simple: given a C++ array (e.g.x as inint x[10]), how would you get thenumber of elements in it?An obvious soluti转载 2013-12-24 14:28:22 · 686 阅读 · 2 评论 -
Chrome - Threading
http://www.chromium.org/developers/design-documents/threading OverviewChromium is a very multithreaded product. We try to keep the UI as responsive as possible, and this means not blocking the转载 2014-01-08 11:10:42 · 1125 阅读 · 0 评论 -
Chrome学习笔记(一):线程模型,消息循环
http://bigasp.com/archives/478 原创文章,转载请注明:转载自Soul Apogee本文链接地址:Chrome学习笔记(一):线程模型,消息循环看Chrome已经有一段时间了,但是一直都没有沉淀些内容下来,是该写写笔记什么的了,免得自己忘记了。看的都是Windows平台下的代码,所以记录也都是记录的。。。废话。。那么首先,先从最基础的东西记录起转载 2014-01-08 11:12:54 · 1436 阅读 · 0 评论 -
crc64 redis 源码
#include static const uint64_t crc64_tab[256] ={ UINT64_C(0x0000000000000000), UINT64_C(0x7ad870c830358979), UINT64_C(0xf5b0e190606b12f2), UINT64_C(0x8f689158505e9b8b), UINT64_C(0xc转载 2014-03-20 19:50:49 · 1881 阅读 · 0 评论 -
redis zipmap
原帖地址: http://lobert.iteye.com/blog/1858823 在看此文件源码之前,先看到此文件头部的英文注释,以下是本人理解翻译版:该文件实现了一个数据结构映射到其他字符串的字符串,实施一个O(n)查找数据结构的设计是非常记忆高效的。 Redis的hase类型就是使用这种由小数量元素组成的数据结构,转换为一个哈希表。鉴于很多次Redis hase是用来表示对转载 2014-03-21 15:16:24 · 609 阅读 · 0 评论 -
anet 网络操作函数 redis
#ifndef ANET_H#define ANET_H#define ANET_OK 0#define ANET_ERR -1#define ANET_ERR_LEN 256/* Flags used with certain functions. */#define ANET_NONE 0#define ANET_IP_ONLY (1#if defined(__转载 2014-03-20 20:01:54 · 1512 阅读 · 0 评论 -
rdkafka 使用案例
main.cpp#include <iostream>#include <ctype.h>#include <signal.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <syslog.h>#include原创 2018-07-30 13:46:41 · 3242 阅读 · 1 评论 -
brpc DoublyBufferedData
ScopedPtr 析构时自动释放,本线程的锁。 保存一个wrapper到本地线程的私有变量里,析构时删除。双缓冲,空间换时间,一个用来读,一个用来写,写完后切换一下。_index 保存了读取的对象的下标。bg_index为写的对象的下标。分别为0和1,所以bg_index=!_indexWrapper 每个读线程一个。读取时,从线程本地变量中读取,如果有,则直接获取。如果没有...原创 2018-08-07 09:31:29 · 1509 阅读 · 0 评论 -
【zz】借助backtrace和demangle实现异常类Exception
转载自:http://www.codeweblog.com/%E5%80%9F%E5%8A%A9backtrace%E5%92%8Cdemangle%E5%AE%9E%E7%8E%B0%E5%BC%82%E5%B8%B8%E7%B1%BBexception/ C++的异常类是没有栈痕迹的,如果需要获取栈痕迹,需要使用以下函数:#include <execinfo.h>...转载 2018-08-08 16:30:29 · 241 阅读 · 0 评论 -
log2ceiling and log2floor from brpc bits.h
// Copyright (c) 2009 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.// This file defines some bit ...转载 2018-08-08 16:42:51 · 338 阅读 · 0 评论 -
[zz]The Synchronizes-With Relation
from:http://preshing.com/20130823/the-synchronizes-with-relation/ The Synchronizes-With RelationIn an earlier post, I explained how atomic operations let you manipulate shared variables con...转载 2018-08-13 18:52:51 · 444 阅读 · 0 评论 -
[zz]Acquire and Release Semantics
http://preshing.com/20120913/acquire-and-release-semantics/Acquire and Release SemanticsGenerally speaking, in lock-free programming, there are two ways in which threads can manipulate shared memo...转载 2018-08-13 18:53:32 · 240 阅读 · 0 评论 -
【zz】dpdk全面分析
文章转载自https://www.cnblogs.com/bakari/p/8404650.htmlPS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家。高性能网络技术随着云计算产业的异军突起,网络技术的不断创新,越来越多的网络设备基础架构逐步向基于通用处理器平台的架构方向融合,从传统的物理网络到虚拟网络,从...转载 2018-09-10 08:55:32 · 5580 阅读 · 0 评论 -
brpc:countdown event acquire release
acquire 是要求下面的语句不能优化后跑到上面来;release是要求上面的语句优化后,不能跑到下面去; // bthread - A M:N threading library to make applications more concurrent.// Copyright (c) 2016 Baidu, Inc.// // Licensed under the A...原创 2018-09-07 11:15:25 · 544 阅读 · 0 评论 -
【zz】Recv-Q&Send-Q
原帖地址:https://blog.csdn.net/acmer1183/article/details/52014216 最近线上某些服务器老是报cpu load高,同机房其他机器却没有问题。排查发现以下异常ss -nlRecv-Q Send-Q Local Address:Port Peer Addr...转载 2018-09-18 11:05:27 · 440 阅读 · 0 评论 -
gzip 压缩解压代码示例
#include <zlib.h>#include <iostream>#include <stdint.h>#include <string.h>#include <stdlib.h>using namespace std;#define RD_GZ_CHUNK 262144#define RD_ZERO_INIT...原创 2018-07-25 11:45:46 · 1240 阅读 · 0 评论 -
Linux Dynamic Shared Library && LD Linker
原帖地址: https://www.cnblogs.com/LittleHann/p/4244863.htmlLinux Dynamic Shared Library && LD Linker目录1. 动态链接的意义2. 地址无关代码: PIC3. 延迟版定(PLT Procedure Linkage Table)4. 动态链接相关结构5. 动态链接的步骤和实现6. Li...转载 2018-07-10 08:29:06 · 549 阅读 · 0 评论 -
浅谈Memory Reordering
原文:http://dreamrunner.org/blog/2014/06/28/qian-tan-memory-reordering/ Memory ordering在我们编写的 C/C++代码和它被在 CPU 上运行,按照一些规则,代码的内存交互会被乱序.内存乱序同时由编译器(编译时候)和处理器(运行时)造成,都为了使代码运行的更快.被编译开发者和处理转载 2017-12-11 11:06:22 · 500 阅读 · 0 评论 -
内存屏障什么的
内存屏障什么的On October 28, 2010, in C语言, linux, linux系统, 系统结构, by sponge当你看到“内存屏障”四个字的时候,你的第一反应是什么?寄存器里取出了错误的值?ifence,sfence之类的指令?还是诸如volatile之类的关键字?好吧,我第一次看到这四个字的时候,脑子里浮现出的是魔兽争霸里绿油转载 2017-12-11 16:04:25 · 280 阅读 · 0 评论 -
6.1 原子操作
http://www.epubit.com.cn/book/onlinechapter/55636.1 原子操作深入解析Android 5.0系统6.1 原子操作对简单类型的全局变量进行操作时,即使是一些简单的操作,如加法、减法等,在汇编级别上也需要多条指令才能完成。整个操作的完成需要先读取内存中的值,在CPU中计算,然后再写回内存中。如果中间发转载 2017-12-11 16:08:29 · 759 阅读 · 0 评论 -
The "Double-Checked Locking is Broken" Declaration Signed by: David Bacon (IBM Research) Joshua Blo
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.htmlThe "Double-Checked Locking is Broken" DeclarationSigned by: David Bacon (IBM Research) Joshua Bloch (Javasoft), Jeff Bo转载 2017-12-11 16:55:17 · 278 阅读 · 0 评论 -
Double-Checked Locking is Fixed In C++11
http://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/Double-Checked Locking is Fixed In C++11The double-checked locking pattern (DCLP) is a bit of a notorious case stu转载 2017-12-11 16:57:20 · 246 阅读 · 0 评论