- 博客(61)
- 资源 (10)
- 收藏
- 关注
原创 更新和迁移phabricator
如何迁移数据库:1)./phabricator/bin/storage dump | gzip > backup.sql.gz2)gunzip -c backup.sql.gz | mysql -u -p //注意需要迁移前后phabricator的版本保持一致如何保持一致? 进入phabricator/arcanist/libphutil的git仓库,git reset操
2016-08-05 17:08:30 1777
原创 Non temporal store调研分析
Nontemporal store调研分析目录:我们为什么要研究Nontemporal指令?我们的目的是什么?Nontemporal指令是什么?Nontemporal指令的作用是什么?Nontemporal指令现在的应用有哪些热度如何?Nontemporal指令怎么用?Nontemporal指令有哪些?Nontemporal指令在gcc中支持情况如何?如何在
2016-07-03 09:01:37 3407
转载 自反,反自反
自反: 如果a是A的元素,那么是R的元素反自反: 如果a是A的元素,那么不是R的元素对称:如果是R的元素,那么是R的元素反对称:如果,是R的元素,那么a,b相等传递:如果,是R的元素,那么是R的元素
2015-11-03 08:18:00 1700
转载 固定特定的线程到特定的CPU
https://gcc.gnu.org/onlinedocs/libgomp/GOMP_005fCPU_005fAFFINITY.htmlDescription:Binds threads to specific CPUs. The variable should contain a space-separatedor comma-separated list of CPU
2015-07-30 16:50:52 756
原创 gcc phi结构体
gcc phi结构体phi是gcc中重要的数据结构类型,它主要用于ssa中的别名处理,本文主要讲述它的作用,相关数据结构体和核心处理函数1.作用 phi主要用于别名处理,对于在ssa阶段中因为分支导致不确定具体是什么数据,采用phi. 2.主要数据结构struct GTY(()) phi_arg_d { /* imm_use MUST be the first element in stru
2015-06-30 18:06:11 995
原创 elf文件分析-程序员的自我修养第三章学习
今天学习程序员的自我修养第三章学习对其中的一些内容提取。elf文件Linux操作系统二进制文件统一管理的格式文件,对其分析对于理解编译和链接、集成大型系统,修复bug很有帮助。源程序都会通过编译、链接成可执行文件,可执行文件的elf文件格式是固定,下面看如下图:这个就是C语言代码与elf文件格式的对应。elf文件是通过段来组织的:例如:.test 存放代码
2015-02-13 17:37:23 900
原创 编译和链接技术总结
一个程序需要经过预编译、编译、汇编、链接成为可执行文件的过程。预编译过程:工具命令gcc -E hello.c -o hello.icpp hello.c > hello.i过程:1.将宏定义展开,去除#define2.处理预编译命令。3.展开#include文件。4.删除// /**/行5.添加行号和文件名标识。 编译:将C语言编译成汇编语
2015-02-13 13:25:06 622
原创 workload分层
之前讲述了workload的分层,对于不同的测试选择workload的方式不同。workload选择的原则:1.不同的层级不同的应用测试层次有: 1.Arithmetic-logic unit 利用Instruction 2.Central processing unit 利用Instruction mix 3.Operating s
2015-01-15 15:00:05 1066
原创 workload选择
在确定workload的之后,下一步就是如何描述workload。workload描述通俗理解为限定条件、测试指标以及输出的统计数据。针对之前讲述了workload的分层,对于不同的测试选择workload的方式不同。workload的描述有:1.主要应用是什么2.地点、场景3.user sessions4.输入参数5.限定条件,对实验影响较大因素6.输出值,也
2015-01-15 14:58:56 3019
原创 Linux桌面操作系统性能分析学习总结
1.什么是计算机性能所谓计算机的性能(Performance)通常是指计算机的速度,它是程序执行时间的倒数。而程序执行时间是指用户向计算机送入一个任务后,直到获得他需要的结果这一段等待时间。包括:1.访问磁盘和访问存储器的时间2.CPU 运算时间3.I/O 动作时间4.操作系统的开销时间等。2.Linux桌面操作系统性能分析意义1.操作系统的性能直接影响了其上应用系
2015-01-14 16:46:29 2754
原创 性能评估思路总体
性能评估设计步骤:1.陈述目标,定义系统。确定所设定的目标,建立软硬件系统,设定边界2.列出所提供的服务和产出。3.选择指标。通常这些指标与速度、准确度、可靠性有关。4.列出变量。这一步列出有关影响性能的所有的变量,这列出第一遍的变量之后,好好再分析一下,再添加有关的其他变量,这些变量尽可能通俗易懂。5.选择因素来研究。在小4中列出的变量分为在性能分析中可变和不变量,我们把这些
2015-01-14 16:38:50 732
原创 32位和64位程序兼容性
最近项目需要将之前开发的32位程序迁移到64位操作系统。对于上层应用程序而言没有什么特别的差异。对于底层程序例如嵌套汇编等对寄存器的操作需要考虑这个问题,不同点在于字节对齐,寄存器操作和指令的不同。对齐单位32位和64位是不一样的。 寄存器,32位的有eax、ebx,而64位操作系统是rax、rbx。 指令:32位的pushl、addl、movl,而64位
2015-01-08 15:08:22 1322
原创 PowerSaver驱动源码分析技术文档
目 录一、简述 1二、操作环境 2三、主要原理及关键结构体、函数分析 2cpufreq_policy结构体 2cpufreq_frequency_table结构体 4eps_cpu_data结构体 4四、具体函数分析 6eps_cpu_init分析 6eps_cpu_exit分析 7eps_verify分析 7eps_target分析 7eps_s
2015-01-06 16:18:09 1153
原创 字符型驱动编写技术文档
一、概述 一个字符型驱动的demo程序,主要功能:申请一块内存,把它当作设备,进行读写操作。它涵盖了编写驱动的主要函数和流程,适合入门驱动人员参考。该程序已经验证通过。二、源码有主要3个程序:Makefile用来编译,my_driver.c驱动程序,test.c是测试程序。.├── Makefile├── my_driver.c└── test └─
2014-12-30 17:31:39 898
原创 PadLock AES内核测试模块(1)
一、简述 主要编写了一个测试验证PadLock AES内核接口的验证模块。应用PadLock AES内核接口实现加密解密。本文提供了应用该模块的方法、步骤、原理及源码。二、操作环境操作系统mint17内核3.8.0编译器gcc4.7.3CPUVIA Nano
2014-12-27 15:28:23 1544 1
原创 PadLock AES内核测试模块(2)
一、简述 主要编写了一个测试验证PadLock AES内核接口的验证模块。应用PadLock AES内核接口实现加密解密。本文提供了应用该模块的方法、步骤、原理及源码。二、操作环境操作系统mint17内核3.8.0编译器gcc4.7.3CPUVIA Nano
2014-12-27 12:30:41 1792
原创 深入理解计算机系统第五章学习-性能优化 3
5.8分支预测现在的处理都支持分支预测功能,在执行分支预测时候,在执行判断语句之前,处理器已经执行了判断后的语言,如果判断正确,就会直接把处理结果给执行单元,否则就会接受分支预测失败惩罚,如果预测比较容易预测,是可以很好提升其性能,如果分支判断确实是随机的话最好不要用这种方法。不过通常的情况下建议多运用分支预测预取技术。GCC在判断是否运用分支预测预取技术的时候,会根据代码的风格判断,以下
2014-12-05 20:36:01 1061
原创 深入理解计算机系统第五章学习-性能优化 2
5.5循环展开一种比较常见的优化程序算法,就是将一次循环展开多次,来减少循环的次数。例如combine5:void combine5(vec_ptr v, data_t *dest){long int i;long int length = vec_length(v);long int limit = length - 1;data_t *data = get_ve
2014-12-05 20:33:41 1138
原创 深入理解计算机系统第五章学习-性能优化 1
一、简述本文主要是通过学习深入理解计算机系统第五章-性能优化之后的理解和总结。第五章主要目的通过对底层硬件架构和机制(汇编、处理器架构)的理解,让程序员写出更加高效(性能)的代码。二、为什么要进行性能优化对于性能需要不是很急切的地方进行性能优化的意义不是很大,进行性能优化是需要成本的,需要对原始代码进行重构。随着计算机技术不断发展,处理器性能的提高,往往性能可以通过硬件来弥补,但是有些
2014-12-05 20:20:45 1978
原创 性能分析工具使用-callgrind+kcachegrind
性能分析工具使用-callgrind+kcachegrind 一、简述 本文讲述如何应用callgrind和kcachegrind进行性能分析。该工具可以方便分析出可执行文件函数的执行时间及调用关系。二、开发环境操作系统Mint17内核3.13.0编译器gcc4.8.0
2014-12-04 17:30:36 11669
原创 正则表达式验证正确性测试程序
#皮尔#!/usr/bin/perl use 5.14.2; use strict; use warnings; while( chomp; if(/abc/){ print "matched :|$`
2014-09-27 13:30:31 1233
原创 怎样提高能力
解决问题的能力,快!1. 查看代码能力2. 思路3. 查阅资料的能力4. 遇到不懂的赶紧查不停的记忆! 我觉得最关键的就是身体(保持个好心情,好的睡眠,吃好!)
2014-09-13 13:42:42 440
转载 linux awk命令详解(转)
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
2014-07-24 16:03:32 527
原创 shell脚本判断Linux下的CPU类型
#/bin/shcat /proc/cpuinfo > lala#awk '{if ($1 == "vendor_id" && $3 == "GenuineIntel") {print haha="abc"}}' 1eval $(awk '{if ($1 == "vendor_id" && $3 == "CentaurHauls") {print "via_flag1='ok'"}
2014-07-22 19:11:38 2326
转载 小组级git服务器的搭建
小组级git服务器的搭建http://blog.chinaunix.net/uid-16979052-id-3491746.html1、公钥的生成任何一个需要使用git服务器的工程师都需要生成一个ssh的公钥。可以通过ssh-keygen来生成~/.ssh$ ssh-keygenGenerating public/private rsa key
2014-07-11 17:18:05 591
转载 性能分析工具gprof -linux
(转)性能分析工具gprof: 有一些程序设计工具,它可以告诉你程序执行的效率,整个程序的调用结构,函数调用关系等。这样的工具真的很有用。gprof就是这样的一个效率分 析工具,它能产生一份详细的列表,列出程序执行的一些统计值,其中包括每个函数被调用的频率,被谁调用,所花费时间等。要使用gprof,在用gcc编译 时要加上-pg参数。这个参数会在目的文件中加上gprof所需的信息,也会将
2014-06-18 16:02:50 735
原创 编译deb包过程
编译deb包过程sudo apt-get build-dep language-pack-gnome-zh-hans-base //安装language-pack-gnome-zh-hans-base 的依赖 language-pack-gnome-zh-hans-base需要建立的包dpkg-buildpackage //建立包Cd ..Dpkg -i language
2014-05-15 10:54:20 2053
原创 深入理解计算机系统 家庭作业 2.94
#include typedef unsigned float_bits;typedef unsigned char *byte_pointer;void show_bytes(byte_pointer start,int len){ int i; for(i = 0;i { printf(" %.2x",start[i]);
2014-04-28 22:26:48 903
原创 深入理解计算机系统 家庭作业 2.93
typedef unsigned float_bits;float_bits float_half(float_bits f){ unsigned sign = f>>31; unsigned exp = f>>23&0xff; unsigned frac = f&0x7fffff; if(exp == 0xff)
2014-04-28 13:07:05 959
原创 深入理解计算机系统 家庭作业 2.92
float_bits float_negate(float_bits f){ unsigned exp =f >> 23 & 0xff; unsigned sign = f >> 31; if(exp == 0xff) return f; if(sign == 0x000000001)
2014-04-27 19:02:37 760
原创 深入理解计算机系统 家庭作业 2.91
27 typedef unsigned float_bits; 28 float_bits float_absval(float_bits f) 29 { 30 unsigned exp =f >> 23 & 0xff; 31 if(exp == 0xff) 32 return f; 33 r
2014-04-27 18:49:03 796
原创 深入理解计算机系统 家庭作业 2.80
int rightnbitsone(int n){ int x = 0; int y = 0x80000000; (n > 0) && (n > n)); printf("the x is %x\n",x);}
2014-04-27 07:55:35 663
原创 深入理解计算机系统 家庭作业 2.78
对于x*5再除以8,int mul5div8(int x){ x = x return ((x > 3)}
2014-04-25 14:49:13 619
C语言实现自动从网上下载资料的功能
2011-05-24
AVServer_DesignGuide_IPNC_DM365
2011-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人