自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 一个全是32位整数的大数组,除了其中一个数字出现2次外,其余的数字都出现了3次。如何找出那个只出现了两次的数字?

#include <stdio.h> int a[] = {433,657,9876,42,9876,657,42,433,433,657,42}; int find_twice(int a[], int length) { int ones = 0; // ones记录了出现1次和3...

2019-07-28 13:23:49 4055 0

原创 程序减肥,strip,eu-strip 及其符号表

我们公司产品里面的可执行程序和动态共享库(DSO)里面的符号表都被移除了,所以每次遇到core dump的时候,都需要将符号表导入到/usr/lib/debug目录下。一直没弄明白为啥是这个目录,能不能是其他目录,今天没啥事儿,研究了下这个主题。 我们要给我们生成的可执行文件和DSO瘦身,因为这...

2015-08-28 23:32:36 38 0

原创 Linux系统网络服务器模型

Linux系统网络服务器模型主要有两种:并发服务器和循环服务器。所谓并发服务器就是在同一个时刻可以处理来自多个客户端的请求;循环服务器是指服务器在同一时刻指可以响应一个客户端的请求。而且对于TCP和UDP套接字,这两种服务器的实现方式也有不同的特点。1、TCP循环服务器:首先TCP服务器接受一个客...

2012-11-06 11:46:43 22 0

原创 漫谈linux文件IO

在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。 阐述之前,要先有个大视角,让我们站在万米高空,...

2012-09-28 10:59:09 25 0

原创 一个均匀绑定cpu的shell

有时候,由于架构设计或其他业务本身特点原因,导致有些应用是由cpu很不均衡;处理集中在一个cpu是上;白白浪费其他CPU在睡觉。一个简单办法就是绑定到多个CPU;绑定CPU是一个不错技巧,但是不是杀手锏,一般能提高10%性能;更好地办法是优化架构,对于网络处理性程序,绑定网卡中断更犀利。这里分享一...

2012-09-28 10:55:50 27 0

原创 daemon 进程为什么要fork两次

daemon进程是后台守护进程,有时候也叫精灵进程(agent).linux 下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。但是具体为什么这么实现,却不是很透彻。 ...

2012-09-28 10:53:14 39 0

原创 函数可重入性及编写规范

一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再...

2012-09-11 23:48:10 14 0

转载 gfp_mask含义

gfp_mask标志在alloc_page,kmalloc函数中都有用到。该标志可以分为三类:行为修饰符,区修饰符,类型修饰符。        行为修饰符表示内核应当如何分配所需的内存,在某些特定的情况下,只能使用某些特定的方法分配内存,例如,中断处理程序就要求内核在分配内存时不能睡眠(因为...

2012-08-29 23:53:11 4924 0

原创 Linux 性能监测工具及调优介绍

原文已删除

2012-07-10 21:07:09 17 0

原创 [原创] Linux体系结构(四): 内核空间和用户空间

原文已删除

2012-04-13 22:38:38 22 0

原创 大型网站动态应用系统架构

原文已删除

2012-03-04 11:44:12 21 0

原创 LINUX内核内存屏障

原文已删除

2012-02-15 16:08:19 21 0

转载 楼层扔鸡蛋问题

有限层数和蛋数,求即使最坏情况下需要的最少判断次数 两个软硬程度一样但未知的鸡蛋,它们有可能都在一楼就摔碎,也可能从一百层楼摔下来没事。有座100层的建筑,要你用这两个鸡蛋确定哪一层是鸡蛋可以安全落下的最高位置。可以摔碎两个鸡蛋。(参见两个鸡蛋--一道Google面试题) 这是典型的动态规...

2012-01-19 22:45:37 2589 0

原创 动态链接库之延迟绑定探究

动态链接库的优点比较明显,主要集中在节省内存,简化对程序的管理等,对此感兴趣的看官可以去阅读经典的教材 Linker and Loader,国内也有一本经典的教材,俞甲子 石凡 潘爱民编著的程序员的自我修养,讲的也非常好。 延迟绑定PLT,我迷惑过很久,终于让我遇到一篇写的非常棒的博文,这就是 ...

2012-01-11 15:33:44 63 0

原创 LINUX内核经典面试题

1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内存的函数有?7) Linux的内核空间和用户空间是如何划分的(以32...

2011-11-14 10:13:32 145 0

原创 Linux系统优化

主要讲解了优化那些方面,具体的还要自己参透最近很多朋友在群里问谁会系统优化这个问题,这个问题博大精:要熟悉系统环境,软件,及网络协议等。我做运维不久我就依照我的写出优化的经验分享给大家把。可能说的很差劲当然是娱乐就行了。对于系统优化系统是为了提高系统的性能吧,我感觉一个系统做的工作越少并且做到极致...

2011-10-23 22:51:02 16 0

原创 Linux下使用mtrace进行内存状况监测

原文地址:http://linux.chinaitlab.com/administer/740243.html 对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。Debug起来也是比较累人。其实Linux系统下有一个使用的工具可以帮忙来调试的,这就是Mtrace.Mt...

2011-08-07 20:48:10 14 0

原创 加速Linux程序编译

项目越来越大,每次需要重新编译整个项目都是一件很浪费时间的事情。Research了一下,找到以下可以帮助提高速度的方法,总结一下。   tmpfs   有人说在Windows下用了RAMDisk把一个项目编译时间从4.5小时减少到了5分钟,也许这个数字是有点夸张了,不过粗想想,把文件放到内存上...

2011-08-04 21:23:04 15 0

原创 linux系统性能调优第一步——性能分析(vmstat)

性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介绍。——————————————————————————————————————————1.性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈);2)提供性能优化的方案...

2011-08-04 21:20:42 76 0

原创 不要对知识与技术的遗忘感到焦虑

原文已删除

2011-08-03 00:05:45 23 0

原创 (4)并发服务器设计原理及多进程服务器

(4)并发服务器设计原理及多进程服务器 注:所以文章红色字体代表需要特别注意和有问题还未解决的地方,蓝色字体表示需要注意的地方 1. 本文所介绍的程序平台 开发板:arm9-mini2440 虚拟机为:Red Hat Enterprise Linux 5 开发板上系统内核版本:l...

2011-07-22 22:59:08 23 0

转载 C/C++位域(Bit-fields)

前言很早想说说这个问题了,经常也会有很多公司拿位域出来考人,呵呵要真的想弄清楚还要一点点的分析。这里先看看网宿的一道笔试题目://假设硬件平台是intel x86(little endian) typedef unsigned int uint32_t; void inet_ntoa(uint3...

2011-07-01 13:50:00 2022 0

转载 linux下fork的运行机制详细解析

<br /><br />要求如下:<br />已知从这个程序执行到这个程序的所有进程结束这个时间段内,没有其它新进程执行。<br />      1、请说出执行这个程序后,将一共运行几个进程。<br />      2、如果其中一个进程的...

2011-05-31 16:04:00 1900 0

转载 精简LINUX内核配置及快速编译的方法收集

<br />如果经常编译新内核(不管是什么目的),或者需要修改内核的某些代码做测试,虽然make会选择的编译有必要重新编译的部分,但是如果修改了某个核心的头文件。可能需要重新编译很多内容,所以把不需要使用的模块不编译是能节省不少时间的。<br />编译内核大部分时间都在编译...

2011-05-31 12:05:00 3604 0

转载 【linux内核装载elf过程简介】

<br />    首先再用户层面,bash进程会调用fork函数创建一个新的进程,然后新的进程调用execve系统调用执行指定的elf文件,原先bash进程继续返回等待刚才启动的新进程结束。然后等待用户输入命令。<br />    int execve(const cha...

2011-05-26 10:20:00 2110 0

转载 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

<br />题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n) ,空间复杂度是O(1) 。<br />分析:这是一道很新颖的关于位运算的面试题。<br />首先我们考虑这个问题的一个简单版本...

2011-05-24 17:56:00 2050 0

转载 LLVM/GCC中如何使用Intel格式的汇编

<br />在GCC以及LLVM编译器中,默认情况下,如果使用汇编或在C/C++,Objective C/C++中内嵌汇编的话都是AT&T格式。<br />尽管本人接触GCC已经很久了,但对于AT&T汇编还是不忒习惯,尤其是写SSE的时候很别扭,呵呵。因此如...

2011-05-16 00:19:00 2340 0

原创 Linux环境下两种汇编风格的切换(AT&T,Intel)

<br />The following i386/x86-64 specific disassembler options are supported for use<br />with the -M switch (multiple options should be s...

2011-05-16 00:11:00 1827 0

转载 Linux Unicode 编程--C语言如何使用/生成UTF-8编码格式的文件

http://www.ibm.com/developerworks/cn/linux/i18n/unicode/linuni/

2011-03-30 21:40:00 3984 0

转载 dd命令的用法

<br />一.dd命令<br />1.我们先在终端输入命令: man dd,看以下官方的解释:<br />NAME<br />       dd - convert and copy a file<br />SYNOPSIS<br...

2011-03-12 19:47:00 905 0

转载 内核同步机制-优化屏障和内存屏障

优化屏障 <br />编译器编译源代码时,会将源代码进行优化,将源代码的指令进行重排序,以适合于CPU的并行执行。然而,内核同步必须避免指令重新排序,优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行...

2011-02-26 23:06:00 2351 0

转载 __asm__ __volatile__内嵌汇编用法简述

<br />__asm__ __volatile__内嵌汇编用法简述 在阅读C/C++原码时经常会遇到内联汇编的情况,下面简要介绍下__asm__ __volatile__内嵌汇编用法。因为我们华清远见教学平台是ARM体系结构的,所以下面的示例都是用ARM汇编。 <br />...

2011-01-19 23:19:00 1016 0

转载 内存屏障

<br />当你看到“内存屏障”四个字的时候,你的第一反应是什么?寄存器里取出了错误的值?ifence,sfence之类的指令?还是诸如volatile之类的关键字?好吧,我第一次看到这四个字的时候,脑子里浮现出的是魔兽争霸里绿油油的铺满苔藓的岩石屏障- -#,并且,当我搞明白内存屏障...

2011-01-14 17:29:00 1063 0

原创 Makefile 里的 subst 函数

<br />Linux中subst是字符串处理函数。 <br />Makefile里的subst<br />  用法是$(subst FROM,TO,TEXT),即将TEXT中的东西从FROM变为TO <br />Makefile中的字符串处理函数&...

2010-12-20 19:14:00 29575 2

转载 dd与cp的区别

<br />问:<br />看了一些关于dd和cp的命令,但是我始终无法明白dd和cp之间有什么不同?<br />不是都可以看成是备份的作用么?还有什么区别呢?<br />答:<br />1、dd是对块进行操作的,cp是对文件操作的。&l...

2010-12-20 18:52:00 8617 2

原创 NOP 指令作用

nop指令的作用: 1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。) 2)通过nop指令产生一定的延迟,但

2010-12-12 19:12:00 33190 7

原创 主机ping不通虚拟机,关于vmnet1,vmnet8

    很久没玩虚拟机了,最近忙着看汇编,今日在看到一帖,关于const的,问题蛮有意思,我想把问题代码反汇编一下,因用到了动态数组,无奈在windows下没有支持GCC扩展语法的编译工具,只好用secureCRT登到VMware里的centOS中(不喜欢用Cygwin),问题这就来了。    前...

2010-06-17 21:49:00 17846 2

转载 关于汇编语言寄存器和指令操作的整理

<br />最近汇编学到后面的内容, 越来越觉得前面的基础没有掌握好, 弄得最后编写汇编程序的时候, 寄存器瞎用, 没有一点的规矩, 中断操作也不知道是对哪个寄存器里的数进行操作, 每次做一个小程序, 都得翻书后面的INT中断查询表, 感觉很不爽, 今天花了大半天把几本关于汇编的书前面...

2010-06-03 01:00:00 1108 0

转载 8个实用而有趣Bash命令提示行

很多人都对过命令行提示的重要性不屑一顾,甚至是一点都不关心。但是我却一点都不这么认为,一个好的命令行提示可以改变你使用命令的方式。为此,我在internet上找到一些非常实用,优秀,并有趣的bash的命令行提示。下面我将我最喜欢使用的一些命令行提示罗列如下。注意  -  要使用下面这些提示,你可以...

2010-05-05 13:39:00 666 0

转载 nasm 中文手册

Nasm中文手册 --------------------------------------------------------------------------------第一章: 简介----------------------- 1.1 什么是NASM NASM是一个为可移...

2010-04-05 18:35:00 3535 0

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