`
xieyj
  • 浏览: 103233 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
DB2通用数据库性能调整的常用方法 Agenda   统计值更新--runstats  调整Buffer pool  调整日志缓冲区大小  应用程序堆大小  排序堆大小和排序堆值  代理程序的数目  锁  活动应用程序的最大数目  页清除程序的数目  I/O服务器的 ...
DB2十佳性能调优技巧 Document #: 2407544E28000 Body: [标题] DB2十佳性能调优技巧   作  者 Scott Hayes Database-Guys Inc. 总裁,DB2 UDB Advanced Certified Technical Expert 2003 年 8 月    内容提要: 本文总结了针对DB2性能调优的十个宝典,对于DBA非常有帮助. 说明: 每隔大约几个星期,我们就会接到苦恼的 DBA 们的电话,抱怨有关性能的问题。“我们 Web 站点速度慢得像蜗牛一样”,他们叫苦道,“我们正在失去客户,情况严重。你能帮忙吗?”为了回答这些问 ...
分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形 使用 db2pd 工具确定并发问题的原因 文档选项 <script type="text/javascript"></script> <noscript></noscript>
    在ClassLoader::load_classfile中,下面的代码引起了我的注意。     ClassFileStream* stream = NULL;      int classpath_index = 0;    {         PerfTraceTime vmtimer(perf_accumulated_time());         ClassPathEntry* e = _first_entry;         while ...
    看看openjdk中的athrow处理流程     {              oop except_oop = STACK_OBJECT(-1);  //从栈中弹出异常的引用              CHECK_NULL(except_oop);  //检查异常引用是否为空              THREAD->set_pending_exception(except_oop, NULL, 0);             goto handle_exception;       //处理异常执行代码     }     处理异常的代码handle_exception   ...
    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));              ObjectSynchronizer::notify(obj, CHECK);     }     看看ObjectSynchronizer::notify方法     ...
       Object.wait调用的是share/vm/prims/jvm.cpp中的JVM_MonitorWait。        void JVM_MonitorWait(JNIEnv* env, jobject handle, jlong ms)        {                  Handle obj(THREAD, JNIHandles::resolve_non_null(handle));                  Ob ...
自定义类加载器继承ClassLoader类,使用自定义类加载器是通过loadClass方法实现。        protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { // 查找类是否已经加载                 Class c = findLoadedClass(name);                 if (c == null) {                 try { if (parent != null) { / ...
      工作以来,陆陆续续看了一些代码,从中是学到了不少知识,也更加意识到自己的无知。一直想进一步提高自己,就象这次看openjdk,只能囫囵吞枣,知道个皮毛,但也获取了不少的知识。从openjdk里面,涉及到了很多知识,操作系统、编译原理、数据结构、设计模式、汇编语言。 有很多技巧值到学习。把庞大的数据结构是组织在一起的,没有深厚的知识底蕴是不可能的。openjdk里面所用到的知识,感觉并没有很高深的知识,好像都知道,好像都会,可自己却写不出来,知识和技术还是有区别的。我辈只能仰望这些牛人了。      一直想提高自己,但提高很慢,这几年的经历来,感觉也下了些苦功夫,却不得法,也许是天资愚 ...
        在java虚拟机中的方法同步synchronized,是通过使用monitorenter和monitorexit这两个操作码,当虚拟机遇到monitorenter的时候,它会获得栈中objectref所引用的对象的锁。如果线程已经拥有那个对象的锁,锁的计数器加1,线程中每个monitorexit会引起计数器减1,当计数器为0时候,监视器就释放了。          先看看openjdk中的monitorenter代码(bytecodeInterpreter.cpp)          {                    if (entry != NULL) {  //获取一 ...
                       David Cutler,VMS和Windows NT的首席设计师,1988年去微软前号称硅谷最牛的内核开发人员,在操作系统领域摸爬滚打几十年,其间的经历就像一部标准的外省青年奋斗记。            与许多计算机界的前辈牛人们一样,David Cutler并不是计算机科班出生,他在大学拿的是数学学士,主攻物理,满怀热情地想成为一位建造事物的工程师。所以,毕业后他进入杜邦公司从事材料测试。一次偶然的机会,David被指派负责在DEC的计算机上运行模拟程序,还为多台单机实时系统编写中央控制程序,调度各种任务、监控系统运作。这个经历不仅丰富了Da ...
        openjdk中的java栈帧是如何布置的呢,在java栈中如果确定变量是一个引用呢,先复习《深入java虚拟机第二版》有关栈帧的内容。         “栈帧由三部分组成:局部变量区、操作数栈和栈数据区。局部变量区和操作数栈要视对应的方法而定,他们是按字长计算的。编译器在编译时就确定了这些值并放在class文件中,而栈数据区的大小依赖于具体实现。           当虚拟机调用一个java方法时,它从对应的类的类型信息得到局部变量区和操作数栈的大小,并据此分配栈帧内存,并压入java栈中。          局部变量区 java栈帧的局部变量区被组织成一个以字长为单位、从0开 ...
     openjdk中的垃圾回收是一个庞大的课题,如何标记活动的对象,就涉及到了堆栈的、常量池的跟踪标记等,非常复杂。在此先做一个初步的分析。      先从System.java中的gc方法开始阅读。      public static void gc() {        Runtime.getRuntime().gc();     }      跟踪进去,其实调用到了jvm.cpp里面的JVM_GC(void)     {               if (!DisableExplicitGC) { //如果可以直接进行垃圾回收,则执行下面的一步, -XX:+DisableExpl ...
        openjdk中周期线程为WatcherThread,在         jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {                ............                if (PeriodicTask::num_tasks() > 0) {                        Wa ...

有相信就有奇迹

    下面是转自一位朋友的博客。     有相信就有奇迹!你,相信吗?一只肥胖的看不见自己脚尖的熊猫,一只以买面条为生的熊猫想成为武林大师,行走江湖,除暴安良。是的,除非发生奇迹!但是,这就是熊猫阿宝的梦想 ...
Global site tag (gtag.js) - Google Analytics