`
xieyj
  • 浏览: 99985 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
    class Field下的ptr等于Table->record[0]的值     这个比较复杂,可以从          key_part_info->field= new Field_string(table->record[0],                                              (uint32) key_part_info->length,                                              (uchar*) 0,                             ...
    嵌入式sql采用游标编程,一般有几步曲 1、EXEC SQL PREPARE sSql FROM :sql ; 2、EXEC SQL DECLARE cSql CURSOR FOR sSql ; 3、EXEC SQL OPEN cSql ; 4、EXEC SQL FETCH cSql INTO ... while(sqlca.sqlcode....){ //判断结束条件 EXEC SQL FETCH cSql INTO ... }   那mysql中fetch是如何实现的呢,看一下fetch的主要流程   先从sql_parse.cc中dispatch_command ...
      今天在看CPU cache时候,根据上面的例子做了个练习,发现了一个怪事情,没想明白       例子如下,在powerpc下面跑,多个power7的CPU: 例子一test: #include <stdio.h> #include <sys/time.h> #include <unistd.h> int main() {         int steps = 256 * 1024 * 1024;         int a[] = {0,0};         int i ;         struct timeva ...
        在mysql源码中,解析sql在sql_yacc.yy中实现,这个文件是一个硕大的文件,用bison来转换为c文件。         在《编译原理及实践》中有yacc介绍,编译原理是很深奥的科目,学好了对编程技术好很大的帮助,可惜当初没好好学,需要回炉一下。         这里是从《编译原理及实践》的摘录。         一个简单的算术表达式的计算器。calc.y,BNF文法如下:  %{ #include <stdio.h> #include <ctype.h> %}   %token NUMBER   %%   comm ...
       学习mysql存储过程执行解析过程,执行一下存储过程        create procedure aa()            begin                 declare x varchar(10);                 select count(*) from test where aaa = x ;            end       在JOIN::exec上设个断点,跟踪一下       执行堆栈如下: #0  JOIN::exec (this=0x900e548) at sql_select.cc:2311 #1 ...
       近日,一个同事问我,在windows下面用tomcat跑,不乱码,在linux下面用websphere跑乱码,是怎么回事,笼统的回答是windows和linux默认编码不一致造成,感觉没说清楚,没能说清楚,就代表自己还没掌握。好好梳理一下。     ...
        如何知道系统延迟的主要原因,是因为磁盘操作,网络原因还是锁竞争?latencytop可以比较清楚指示延迟的原因。systemtap也有个脚本latencytap.stp,具体分析一下他的具体实现,学习一下原理。         主要就是从任务切换时候,找出处于睡眠状态的任务,从堆栈中找出对应的函数,再根据预设好的优先级往上追溯延迟原因。还是挺巧妙的。 #!/usr/bin/stap # # Copyright (C) 2010 Red Hat, Inc. # Written by William Cohen <wcohen@redhat.com> # ...
    翻起tomcat5的源码,看到standardServer.java中的addservice方法:       public void addService(Service service) {           service.setServer(this);           synchronized (services) {             Service results[] = new Service[services.length + 1];     ...
systemtap的注意事项: 1、 函数和探针是在关中断情况下运行        Note that all SystemTap functions and probes run with interrupts disabled, thus you cannot call functions that might sleep within the embedded C. 2、全局变量是有锁保证可以并发运行的       The translator asserts certain safety constraints. It ensures that no handler rout ...
查找 JVM objectName: <wsadmin> set objectName [$AdminControl queryNames  WebSphere:type=JVM,process=<servername>,node=<nodename>,*]   对 JVM MBean 调用 generateHeapDump 操作: <wsadmin> $AdminControl invoke $objectName generateHeapDump 其中: $是使用其值替换变量名的 Jacl 运算符 invoke是命令 gen ...
       在学习systemtap过程中使用show_trace,这个函数在/proc/kallsyms中存在,表示这是个有效的函数,用systemtap执行时候报错unkown symbol in module,用dmesg看错误比较明显Unkown symbol show_stack,显然说明这个函数没有导出,导出的符号表存在那里呢,看一下内核源码中的modules.txt,导出的符号表文件为Module.symvers 。具体路径在/lib/moudules/`uname -r`/Module.symvers),        那systemtap到那里查找内核的调试符号呢?在h ...

vim使用笔记

:TlistOpen /*打开taglist*/ ctrl+w    /*在多个窗口间切换*/ :cd 目录 /*进入工作目录*/ :set tags=/目录/tags /*这个是用ctags -R预先产生的tags文件*/ :/pattern /*查找 n N 向前、向后查找*/ :vimgrep /查找的单词或者正则表达式/ 文件名 /*多个文件查找*/ :ts       /*显示多个找到的tag*/ ctrl+]    /*跳转到标签位置*/ ctrl+t    /*返回上层位置*/ :args     /*显示编辑的文件*/ :next     /*在编辑文件间 ...
       怎么在linux系统下面找到,对磁盘操作最多的进程,systemtap自带的例子disktop.stp,就能实现这个功能,在doc/systemtap/examples/io目录里面,运行一下看看stap -v disktop.stp,显示如下               由上图可以看出最繁忙的进程和磁盘了,贴一下代码,------后面为我写的备注   # Copyright (C) 2007 Oracle Corp. # # Get the status of reading/writing disk every 5 seconds, # output top t ...
        近来学习了下systemtap,忽然想了个问题,怎么在linux下面监控一个用户对那些文件进行操作?准备用它来学习一下内核。         文件操作主要是open,read、write,是不是监控这3个系统调用就可以了?说干就干,上代码。         下面是程序filemon.stp  %{ #include <linux/file.h> #include <linux/dcache.h> #include <linux/mount.h> #include <linux/fs.h> #include < ...

性能调优小结

       刚好项目快要上线,怎么查找系统的瓶颈?性能问题比崩溃这类问题来得复杂得多,作为以后查找问题的一个摘要,好好梳理一下。我们的系统一般都是bs系统,就以bs系统为例子。        客户反映慢,第一反应先检查网络,以前还真遇到网络原因造成某个客户慢的情况,先找个机器连接上去,检查一下网络状况。ping一下服务器。        接着检查一下,是否为系统的瓶颈。        系统的瓶颈主要是cpu、内存、io等。下面以linux系统为例。        1、首先检查是否为cpu瓶颈        采用vmstat 1查看一下cpu和内存使用情况,注意里面的运行队列项r项 ...
Global site tag (gtag.js) - Google Analytics