自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Item_field、Field、Table下面的record关系

    class Field下的ptr等于Table->record[0]的值    这个比较复杂,可以从         key_part_info->field= new Field_string(table->record[0],                                             (uint32) key_part_in...

2013-11-08 15:39:19 719

原创 游标fetch源码分析

    嵌入式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....){ //判断结束条件EX...

2013-10-31 11:12:27 322

原创 smp下cpu cache并行测试

      今天在看CPU cache时候,根据上面的例子做了个练习,发现了一个怪事情,没想明白      例子如下,在powerpc下面跑,多个power7的CPU:例子一test:#include <stdio.h>#include <sys/time.h>#include <unistd.h>int main(){   ...

2013-09-16 15:42:12 476

原创 yacc介绍

        在mysql源码中,解析sql在sql_yacc.yy中实现,这个文件是一个硕大的文件,用bison来转换为c文件。        在《编译原理及实践》中有yacc介绍,编译原理是很深奥的科目,学好了对编程技术好很大的帮助,可惜当初没好好学,需要回炉一下。        这里是从《编译原理及实践》的摘录。        一个简单的算术表达式的计算器。calc.y,BN...

2013-09-15 20:10:22 1091

原创 mysql存储过程执行跟踪

       学习mysql存储过程执行解析过程,执行一下存储过程       create procedure aa()           begin                declare x varchar(10);                select count(*) from test where aaa = x ;           end ...

2013-09-13 14:16:55 1474

原创 java转码及页面乱码原因分析

       近日,一个同事问我,在windows下面用tomcat跑,不乱码,在linux下面用websphere跑乱码,是怎么回事,笼统的回答是windows和linux默认编码不一致造成,感觉没说清楚,没能说清楚,就代表自己还没掌握。好好梳理一下。       几个基本的知识点:       1、String其实和char数组等价,保存为2个字节,为unicode编码。存放在str...

2013-09-07 22:20:05 281

原创 latencytap.stp学习

        如何知道系统延迟的主要原因,是因为磁盘操作,网络原因还是锁竞争?latencytop可以比较清楚指示延迟的原因。systemtap也有个脚本latencytap.stp,具体分析一下他的具体实现,学习一下原理。        主要就是从任务切换时候,找出处于睡眠状态的任务,从堆栈中找出对应的函数,再根据预设好的优先级往上追溯延迟原因。还是挺巧妙的。#!/usr/bin/...

2013-08-18 15:15:51 247

原创 synchronized错误用法

    翻起tomcat5的源码,看到standardServer.java中的addservice方法:     public void addService(Service service) {         service.setServer(this);         synchronized (services) {            Servic...

2013-08-12 14:09:13 254

原创 systemtap学习笔记

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、全局变量是...

2013-07-31 21:52:20 95

原创 在websphere下面手工产生HeapDump

查找 JVM objectName:<wsadmin> set objectName [$AdminControl queryNames WebSphere:type=JVM,process=<servername>,node=<nodename>,*]  对 JVM MBean 调用 generateHeapDump 操作:<wsad...

2013-07-31 11:59:07 444

原创 systemtap学习笔记

       在学习systemtap过程中使用show_trace,这个函数在/proc/kallsyms中存在,表示这是个有效的函数,用systemtap执行时候报错unkown symbol in module,用dmesg看错误比较明显Unkown symbol show_stack,显然说明这个函数没有导出,导出的符号表存在那里呢,看一下内核源码中的modules.txt,导出的符号...

2013-07-29 19:03:07 189

原创 vim使用笔记

:TlistOpen /*打开taglist*/ctrl+w    /*在多个窗口间切换*/:cd 目录 /*进入工作目录*/:set tags=/目录/tags /*这个是用ctags -R预先产生的tags文件*/:/pattern /*查找 n N 向前、向后查找*/:vimgrep /查找的单词或者正则表达式/ 文件名 /*多个文件查找*/:ts       /...

2013-06-09 15:33:08 68

原创 systemtap监控磁盘操作

       怎么在linux系统下面找到,对磁盘操作最多的进程,systemtap自带的例子disktop.stp,就能实现这个功能,在doc/systemtap/examples/io目录里面,运行一下看看stap -v disktop.stp,显示如下              由上图可以看出最繁忙的进程和磁盘了,贴一下代码,------后面为我写的备注 # Copyrigh...

2013-05-01 15:01:00 375

原创 systemtap监控用户文件操作

        近来学习了下systemtap,忽然想了个问题,怎么在linux下面监控一个用户对那些文件进行操作?准备用它来学习一下内核。        文件操作主要是open,read、write,是不是监控这3个系统调用就可以了?说干就干,上代码。        下面是程序filemon.stp %{#include <linux/file.h>#incl...

2013-04-29 16:40:48 536

原创 性能调优小结

       刚好项目快要上线,怎么查找系统的瓶颈?性能问题比崩溃这类问题来得复杂得多,作为以后查找问题的一个摘要,好好梳理一下。我们的系统一般都是bs系统,就以bs系统为例子。       客户反映慢,第一反应先检查网络,以前还真遇到网络原因造成某个客户慢的情况,先找个机器连接上去,检查一下网络状况。ping一下服务器。       接着检查一下,是否为系统的瓶颈。       ...

2013-04-04 15:47:15 113

原创 mysql锁释放时机(二)

       上篇,跟踪了select在事务和非事务下的调用路径,本次跟踪insert下的执行路径。       insert into test1(aa) values('hello world');       断点显示的堆栈#0  lock_release_off_kernel (trx=0xb512ac68) at lock/lock0lock.c:3853#1  0xb5d...

2013-03-14 11:10:57 900

mysql释放锁时机跟踪

      近几年学得比较迷茫,好像什么都学,一直想好好剖析一个好产品, 好好提升一下自我,好像进展蛮慢,博客也少写了。 人的精力是有限的,还是得在某一行深入。      近来对mysql有些兴趣,专门学习了一下。      我们都知道,数据库事务隔离级别下和普通sql加锁和释放锁的时机是不同的,      mysql是如何实现的呢。(以mysql-6.0.11-alpha为例)      m...

2013-03-14 10:24:19 486

gSoap的使用

  由于在c++中需要调用其他语言提供的webservice,而微软提供的的确不怎么样,下载了gsoap学习一下。  函数名GetCigInfo功能返回最新的卷烟品牌列表原形CigInfo[] GetCigInfo(String corpCode)URL 输入参数...

2011-06-02 10:07:47 117

原创 synchronized、wait、notifyAll学习

  这几个用法是很多公司都考的问题,下面再复习一下 package test;public class MyThread extends Thread { public static Object lock = new Object() ; //全局的锁,在这用来说明问题 public static int i = 0 ; public void run(){  synchronize...

2011-02-11 09:15:36 84

spring中链式处理

  近来复习了一下spring代码,感觉好的代码还是需要经常看看,从中还是能学到很多东西,虽然我并不看好开源的市场,总觉得开源的东西过于理想,但正因为开源,使我辈等能从中学到一流程序员的设计思路,还是非常感激。  由于项目的需要,不用java也有一年多的时间,个人还是经常看看java项目的源码,从中吸取其中的思路,在项目中也剽窃了一些。个人觉得思路是相通的,不必在乎编程语言。  在spri...

2010-04-25 22:58:18 649

java动态代理

   在java里面使用动态代理,一般有以下流程   定义接口   public interface ISample{        public void test();   }   定义实现类   public class SampleImple implements ISample{        public void test(){            ...

2009-11-19 16:21:57 89

原创 质疑软件工厂

下面摘录《C++沉思录》里面一段:     我们很容易就会注意到:很多最成功的、最有名的软件最初是由少数人开发出来的。这些软件后来可能逐渐成长,然而,令人吃惊的是许多真正的赢家都是从小系统做起的。UNIX操作系统就是最好的例子,C编程语言也是。其他的例子还包括:电子表格、Basic和FORTRAN编程语言、MS-DOS和IBM的VM/370操作系统。VM/370尤其有趣,因为它完全是在IBM正...

2009-08-04 12:27:23 97

原创 Windows SDK笔记(B)

(接上章)五、子窗口的管理1.概述给MDI客户区窗口发控制消息即可如:case WM_COMMAND:switch (LOWORD (wParam)){     case IDM_WINDOW_TILE:         SendMessage (hwndClient, WM_MDITILE, 0, 0) ;         return 0 ;          ...

2009-06-20 14:52:46 97

原创 [转载]Windows SDK笔记(A)

下面转一篇windows的文章,sdk很早时候看过一下,当时如读天书,现在回看,当做补课了! [转载]Windows SDK笔记 应程序需求需要重写窗体内子控件某一特定消息,可怜我苦苦找了二天也没找到资料,到CDSN提问也没有得到满意答案。终归是上天不负有心人啊,终于被我发现了博主的一篇文章,总算是满意的解决问题了;在此感谢作者!!原文:http://www.cppblog....

2009-06-20 14:47:18 70

原创 db2内存分配

    从IBM资料中摘录db2内存分配和释放的图例  db2私有排序情况下,内存分配  

2009-02-18 09:24:42 263

原创 db2参数调整

          上图为db2采用集中连接器时的情况          当一个连接连到db2数据库时候,db2监听器(db2tcpcm、db2icpcm)为客户端连接创建一个代理,如果代理的总数不超过max_connections,超过max_connections会返回SQL1226N错误。         当应用程序发送一个sql语句,执行下面的步骤         1、分配通讯代理,...

2009-02-17 16:53:33 187

小议偏向锁

  java SE6采用偏向锁以提高性能。  个人理解,偏向锁能提高性能,其理论基础是建立在绝大部分时间内,需要同步的代码其实只是一个线程在运行,正因为是单个线程在运行,所以尽量采用轻量的代码以提高性能,原子操作那是肯定需要的,但不需要采用切换上下文这类的重型操作。如果是很多线程同时运行到同步代码地方,同步代码稍长的话,采用偏向锁反而影响性能。   如果是我设计锁,首先会考虑在内存内放置锁的标...

2009-02-02 22:18:05 198

java中调用接口及调用继承类效率区别

  都说调用接口要比调用继承类要慢,但慢在何处?  先看byteCodeInterpreter.cpp里面对这invokevirtual和invokeInterface的区别。        CASE(_invokeinterface): { //调用接口        u2 index = Bytes::get_native_u2(pc+1);        ConstantPoolCac...

2009-01-19 22:34:14 362

stl::allocator析构函数调用

  近来由于项目需要,采用c++编程,学习了一下stl,对stl::allocator粗略研究了一下,allocator其实就是一个工厂模式,对它的几个方法粗略分析一下  pointer allocate(size_type n, const_pointer = 0) {        void* p = std::malloc(n * sizeof(T)); //只分配对象占用的内存,并不初始...

2009-01-06 09:54:06 166

IBM红皮书《DB2 Performance Guide》学习笔记

   在书的第6章问题检侧的情景中,列出db2问题检测的先后次序   1、Connection constraints   2、Sorting constraints   3、Locking constraints   4、Buffer pool problems   5、Cache size problems   6、Miscellaneous problems   此1-5有专门...

2008-11-23 00:41:31 153

原创 DB2通用数据库性能调整的常用方法

DB2通用数据库性能调整的常用方法Agenda  统计值更新--runstats  调整Buffer pool  调整日志缓冲区大小  应用程序堆大小  排序堆大小和排序堆值  代理程序的数目  锁  活动应用程序的最大数目  页清除程序的数目  I/O服务器的数目  编入组的提交数目统计信息更新  当对SQL 查询进行优化时,SQL 编译器所做出的决定会受到优化器的数据库内容模型的重大影...

2008-11-19 14:13:21 345

原创 DB2十佳性能调优技巧

DB2十佳性能调优技巧 Document #: 2407544E28000 Body: [标题] DB2十佳性能调优技巧  作  者 Scott Hayes Database-Guys Inc. 总裁,DB2 UDB Advanced Certified Technical Expert 2003 年 8 月   内容提要: 本文总结了针对DB2性能调优的十个宝典,对于DBA非常有帮助...

2008-11-19 13:46:43 365

原创 使用 db2pd 工具确定并发问题的原因

分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形使用 db2pd 工具确定并发问题的原因文档选项<script type="text/javascript"></script><noscript></noscript><script typ...

2008-11-19 13:37:24 310

hotsphot中的ResourceArea

    在ClassLoader::load_classfile中,下面的代码引起了我的注意。    ClassFileStream* stream = NULL;     int classpath_index = 0;    {         PerfTraceTime vmtimer(perf_accumulated_time());         ClassPathEntry* ...

2008-11-09 21:38:30 392

athrow程序执行代码

    看看openjdk中的athrow处理流程    {             oop except_oop = STACK_OBJECT(-1);  //从栈中弹出异常的引用             CHECK_NULL(except_oop);  //检查异常引用是否为空             THREAD->set_pending_exception(except_oo...

2008-10-10 14:38:57 434 1

Object中notify方法

    Object.java类中notify调用的是share/vm/prims/jvm.cpp中的JVM_MonitorNotify。    void JVM_MonitorNotify(JNIEnv* env, jobject handle)    {             Handle obj(THREAD, JNIHandles::resolve_non_null(handle)...

2008-10-08 10:48:13 219

Object中wait方法

       Object.wait调用的是share/vm/prims/jvm.cpp中的JVM_MonitorWait。       void JVM_MonitorWait(JNIEnv* env, jobject handle, jlong ms)       {                 Handle obj(THREAD, JNIHandles::resolve_no...

2008-09-18 10:59:17 249

自定义类加载器loadClass

自定义类加载器继承ClassLoader类,使用自定义类加载器是通过loadClass方法实现。        protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // 查找类是否已经加载                 Class c = fi...

2008-09-17 15:43:17 166

学习感悟

      工作以来,陆陆续续看了一些代码,从中是学到了不少知识,也更加意识到自己的无知。一直想进一步提高自己,就象这次看openjdk,只能囫囵吞枣,知道个皮毛,但也获取了不少的知识。从openjdk里面,涉及到了很多知识,操作系统、编译原理、数据结构、设计模式、汇编语言。 有很多技巧值到学习。把庞大的数据结构是组织在一起的,没有深厚的知识底蕴是不可能的。openjdk里面所用到的知识,感觉并没...

2008-09-17 11:17:41 110

openjdk中的同步代码

        在java虚拟机中的方法同步synchronized,是通过使用monitorenter和monitorexit这两个操作码,当虚拟机遇到monitorenter的时候,它会获得栈中objectref所引用的对象的锁。如果线程已经拥有那个对象的锁,锁的计数器加1,线程中每个monitorexit会引起计数器减1,当计数器为0时候,监视器就释放了。         先看看openj...

2008-09-16 15:24:18 164

空空如也

空空如也

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

TA关注的人

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