自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(200)
  • 收藏
  • 关注

转载 do{...}while(0)的意义和用法

转自:http://www.spongeliu.com/415.htmllinux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总

2017-09-24 15:52:33 495

原创 常用逆向工具小结(1)

1. strings命令:这个命令可以用于扫描ELF文件(可执行程序、动态链接库、编译产生的目标文件)中可打印的字符串。如果不加任何命令行参数,strings将输出ELF文件头中,位于.data段、.rodata段以及符号表中的常量字符串。如果添加-a,将对整个ELF文件进行扫描,输出全部字符串,包括段名,比如.data、.bss等字符串。2. file命令:这个命令可以用于确

2017-09-03 18:50:47 1166

原创 Valgrind总结(2) —— 命令行参数详解

一、输出信息重定向:默认情况下,valgrind输出的信息会重定向到标准错误输出流(stderr,fd=2)。但有时我们往往需要将输出信息重定向到指定文件,有以下几种方式:1. --log-fd=N:    通过这种方式直接将输出信息重定向到fd=N的文件中。2. --log-file=filename:    将输出重定向到filename指向的文件。3. --log-s

2017-09-03 16:15:52 10137 1

转载 CMake快速入门教程:实战

转自http://blog.csdn.net/ljt20061908/article/details/11736713 0. 前言    一个多月前,由于工程项目的需要,匆匆的学习了一下cmake的使用方法,现在有时间拿出来整理一下。本文假设你已经学会了cmake的使用方法,如果你还不会使用cmake,请参考相关资料之后再继续向下看。    本文中介绍的是生成可执行程序的方

2017-08-17 22:28:49 431

原创 Valgrind总结(1) —— 概述

一、前言:对于Linux开发,valgrind的重要性是不言而喻的。尤其在memory error、memory leak的问题定位和排查方面,发挥着极其重要的作用。记得刚毕业那会儿,部门领导曾经反复强调valgrind重要性。曾经在开发过程中,虽然也有使用valgrind,但是从来没有对valgrind这个工具做过完整总结。近期决定对valgrind做一个总结,也算是偿还以前欠下的技

2017-05-20 22:18:48 767

转载 Linux中mprotect()函数的用法

转自:http://www.linuxdiyf.com/linux/14382.html在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。函数原型如下:#include  #include  int mprotect(const void *start, size_t len, int prot); mp

2017-03-27 21:57:46 889

转载 Hello, JIT World: The Joy of Simple JITs

转自:http://blog.reverberate.org/2012/12/hello-jit-world-joy-of-simple-jits.htmlThis is a demonstration of how simple and enjoyable small JITs (just-in-time compilers) can be. The word “JIT” tends

2017-03-15 20:32:39 840 2

转载 Lua中的userdata

转自:http://www.jellythink.com/archives/587话从这里说起在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文

2017-02-22 14:05:55 14109 1

转载 C++对象绑定到Lua

转自:http://blog.csdn.net/kenkao/article/details/8252573游戏中的使用脚本语言已经成为了一个标准应用。脚本语言能够在游戏开发中扮演一个重要的角色,并且让数据结构化,计划事件,测试和调试这些工作更加容易。脚本语言也能够允许像美术,策划这些非程序专家通过一个高层的抽象脚本来为游戏编写代码。这个抽象层的一部分也能够允许提供给玩家来定制整个游戏

2017-02-22 13:59:48 597

转载 Light User Data

转自:http://lua-users.org/wiki/LightUserDataLight userdata, like heavy userdata, are a form of userdata, which is one of the basic data types in Lua [1]. Light userdata are characterized by the foll

2017-02-18 20:53:49 644

转载 Lua 与C/C++ 交互系列:注册枚举enum到Lua Code中

转自:http://blog.csdn.net/sunning9001/article/details/46659163在Lua Code中注册C/C++的枚举非常容易,就像注册全局变量一样。我们使用枚举名称作为命名空间,来避免注册的枚举发生冲突。注册的枚举存储在全局环境(线程环境)中。当在Lua Code中访问枚举时,通过名称来访问对应的值。sample_

2017-02-18 20:45:07 1250

转载 Lua FFI 实战

转自:http://blog.csdn.net/weiwangchao_/article/details/16880401[+]May 19, 2013由来FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语

2017-02-12 22:27:50 898

转载 luajit笔记---编译成静态库以及FFI绑定宿主程序函数

转自:http://blog.csdn.net/fg5823820/article/details/8888207本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。http://blog.csdn.NET/whitehack/arti

2017-02-12 22:26:17 737

转载 Lua Metatables Tutorial

转自:http://nova-fusion.com/2011/06/30/lua-metatables-tutorial/In this tutorial I'll be covering a very important concept in Lua: metatables. Knowledge of how to use metatables will allow you

2016-12-07 19:50:43 385

转载 柔性可用——移动互联网时代的一秒响应秘诀

转自:http://www.cnblogs.com/Kevin-Zhao/articles/4896936.html移动互联网海量服务有2大特点:每用户收益远低于金融业;业务流量毛刺更加突出,瞬间百倍的业务冲击经常发生。柔性可用将从安民告示、产品设计、技术实现三个方面讨论如何深刻理解业务特点、充分考虑突发和故障,精心设计柔性场景,用低成本提供优雅的海量移动互联网服务。 

2016-11-25 11:25:20 1501

转载 Let’s Hook a Library Function

转载:http://opensourceforu.com/2011/08/lets-hook-a-library-function/If you are a developer, and want to change the way a library function works, this article will give you a basic idea of how to g

2016-11-25 08:46:46 515

转载 协程及libco介绍

转自:http://www.tuicool.com/articles/NJNrAnlibco 是腾讯开源的一个协程库,主要应用于微信后台RPC框架,下面我们从为什么使用协程、如何实现协程、libco使用等方面了解协程和libco。why协程为什么使用协程,我们先从server框架的实现说起,对于client-server的架构,server最简单的实现:whil

2016-11-25 08:38:08 627

转载 微服务(Microservice)那点事

转自:https://yq.aliyun.com/articles/2764摘要: 微服务架构被提出很短的时间内,就被越来越多的开发人员推崇,简单来说其主要的目的是有效的拆分应用,实现敏捷开发和部署 。本分享即尝试介绍微服务架构的一些实施细节和要求,探询微服务架构的由来,并最终提供我们团队内部的一些实践总结,希望对大家有帮助。WHAT - 什么是微服务微服务简介

2016-11-25 08:36:12 472

转载 架构案例丨微信Android客户端架构演进之路

转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=402023042&idx=1&sn=0c64c9db380410e58c097ee65708ff11&scene=21#wechat_redirect拓荒微信1.0 for Android的测试版本于2011年1月发布。这是微信Android客户端的

2016-11-25 08:22:21 1457

转载 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量

转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=401735823&idx=1&sn=7a4df58c22d9d3145e0692dd580f6a3d&scene=21#wechat_redirect概述截止到2015年7月,微信每月活跃用户约5.49亿,朋友圈每天的发表量(包括赞和评论)超过10亿,浏览量超过

2016-11-25 08:21:16 562

转载 从0到1:微信后台系统的演进之路

转自:http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=402340325&idx=1&sn=5b7bf6025b1a83a0e529e630fc95ae28&scene=21#wechat_redirect“2个月的开发时间,微信后台系统经历了从0到1的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,

2016-11-20 11:17:28 592

转载 百万并发量苹果官网准备好了吗?——一分钟学会服务器压力测试

转自:http://blog.csdn.net/wetest_tencent/article/details/52596374作者:Oliver,腾讯服务器性能测试团队产品经理 商业转载请联系腾讯WeTest授权,非商业转载请注明出处。目前腾讯WeTest服务器性能测试已经正式对外开放,点击链接:http://wetest.qq.com/gaps/立即体验!WeTe

2016-11-19 23:09:31 818

转载 服务器过载保护(下篇)——过载处理新方案

转自:http://blog.csdn.net/wetest_tencent/article/details/51206578本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/  微信号:TencentWeTest文/iven1 前言世界上不存在绝对完美的系统,我们不是上帝,出现问题是

2016-11-19 22:40:12 830

转载 服务器过载保护(上篇)——过载介绍

转自:http://blog.csdn.net/wetest_tencent/article/details/51206530 本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/  微信号:TencentWeTest1 何为过载“过载”一词,在海量服务的后台开发中,基本都会遇到。何为过载,即当前负载已经超

2016-11-19 22:38:42 780

转载 浅谈过载保护

转自:http://djt.qq.com/article/view/156雪球:对于时延敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定规模,像雪球一样形成恶性循环。由于系统处理的每个请求都因为超时而无效,系统对外呈现的服务能力为0,且这种情况下不能自动恢复。作者bison,腾讯后台开发技术总监。  过载保护,看似简

2016-11-19 21:59:45 381

转载 万亿级调用系统:微信序列号生成器架构设计及演变

“每天万亿级调用的重量级系统,每次申请序列号平时调用耗时1ms,99.9%的调用耗时小于3ms,服务部署于数百台4核CPU服务器上!老司机介绍曾钦松,微信高级工程师,目前负责微信后台基础服务、朋友圈后台等开发优化,致力于高可用高性能后台系统的设计与研发。2011年毕业于西安电子科技大学,早先曾在腾讯搜搜从事检索架构、分布式数据库方面的工作。微信在立项之初,就已确立了利用

2016-11-19 18:02:38 424

转载 Linux 2.6 Completely Fair Scheduler 内幕

转自:http://www.ibm.com/developerworks/cn/linux/l-completely-fair-scheduler/index.html?ca=drs-cn-0125自 2.6.23 起提供对 CPU 的出色访问任务调度器是任何操作系统的关键部分,Linux 在此领域中不断发展和创新。在内核 2.6.23 中,推出了 Co

2016-11-13 23:11:14 553

转载 Linux进程调度策略的发展和演变--Linux进程的管理与调度(十六)

转自:http://blog.csdn.net/gatieme/article/details/51701149日期内核版本架构作者GitHubCSDN2016-06-14Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程

2016-11-13 23:09:56 927

原创 VisualGDB相关问题整理

1. Visual Studio 输出窗口存在中文乱码:解决方案:【工程】-->【VisualGDB Project Properties】-->【Makefile settings】-->【Customize】然后添加Additional environment —— LANGUAGE=en_US2. 默认情况下,在VisualGDB工程里,文件编辑窗口无法显示当前文件名、路

2016-11-09 16:53:27 3080

转载 gcc选项-g与-rdynamic的异同

转自:http://www.lenky.info/archives/2013/01/2190gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行

2016-11-09 11:15:34 2045

转载 【内核】进程切换 switch_to 与 __switch_to

转自:http://www.cnblogs.com/visayafan/archive/2011/12/10/2283660.html#define switch_to(prev, next, last) \do { \/* \ * Context-switching clobbers(彻底击败) all registers, so we clo

2016-11-06 22:36:27 1055

转载 CPU私有变量(per-CPU变量)

转自:http://blog.chinaunix.net/uid-24148050-id-300576.html一、简介2.6内核上一个新的特性就是per-CPU变量。顾名思义,就是每个处理器上有此变量的一个副本。per-CPU的最大优点就是,对它的访问几乎不需要锁,因为每个CPU都在自己的副本上工作。tasklet、timer_list等机制都使用了per-CPU技术。

2016-10-30 17:24:30 436

翻译 Per-CPU variables

转自:https://0xax.gitbooks.io/linux-insides/content/Concepts/per-cpu.htmlPer-CPU variables are one of the kernel features. You can understand the meaning of this feature by reading its name. We can

2016-10-30 17:23:28 725

转载 Linux cpumask分析

转自:http://blog.csdn.net/nirenxiaoxiao/article/details/21462053首先我们来分析一下定义在cpumask.h中 结构体cpumask_t[cpp] view plain copy typedef struct cpumask { DECLARE_BITMAP(bits, N

2016-10-30 15:54:37 1387

转载 Linux进程调度(1):CFS调度器的设计框架

转自:http://blog.csdn.net/zhoudaxia/article/details/7375668  1. 概述    对于分时操作系统而言,表面上看起来是多个进程同时在执行,而在系统内部则进行着从一个进程到另一个进程的切换动作。这样的进程并发执行涉及到进程切换(process switch)和进程调度(process scheduling)两大问题。其中进程调度是操作系统

2016-10-30 15:44:01 606

转载 Linux 2.6内核中新的锁机制--RCU

转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速

2016-10-29 23:15:05 365

转载 文件描述符fd和文件指针fp之间的相互转换

转自:http://blog.csdn.net/embedded_sky/article/details/45064123  Linux/Unix下使用open函数(系统调用)打开文件会得到文件描述符fd(int型变量),而使用C库中的fopen函数打开文件则会得到文件描述符fp(FILE*型变量),二者之间是可以相互转换的,下面是两个example。1.fd转换为

2016-10-29 23:10:43 674

转载 Linux内核中的fastcall和asmlinkage宏

转自:http://www.linuxidc.com/Linux/2012-12/77127.htm在linux内核中我们都会经常见到FASTCALL和armlinkage,它们各有什么不同呢?下面我们来具体分析一下。在标准C系中函数的形参在实际传入参数的时候会涉及到参数存放的问题,那么这些参数存放在哪里呢?对x86比较了解的话,应该知道这些函数参数和函数内部局部变量一起被分配

2016-10-29 23:09:57 440

转载 Linux 2.6内核中新的锁机制--RCU

转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速

2016-10-28 13:36:54 340

转载 Linux性能及调优指南(翻译)之Linux内存架构

本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.2节的翻译原文地址:http://www.redbooks.ibm.com/redpapers/pdfs/redp4285.pdf原文作者:Eduardo Ciliendo, Takechika Kunimasa, Byron Braswell译文如下:

2016-10-23 22:39:47 341

空空如也

空空如也

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

TA关注的人

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