logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

使用JVMTI获取Java多线程程序指令执行次序

在Java多线程程序中,由于线程调度,指令间的次序在每次运行时都可能不相同,有时候,我们需要得到指令次序,用来分析程序的行为。这样细粒度的底层行为用一般方法很难完成,我们需要借助 JVM Tool Interface,即JVMTI,来帮助我们获取Java虚拟机执行时的信息。本文先介绍编写JVMTI程序的基本框架,然后介绍如何使用JVMTI来获取多线程程序中指令之间的次序。

#java#虚拟机
Java虚拟机的启动与程序的运行

从 openjdk8 源代码的角度, 介绍了 java.exe 如何启动虚拟机并执行Java程序的过程。

#虚拟机
Java 虚拟机内部类静态字段的初始化与访问

从 HotSpot 源代码的角度,阐述了虚拟机内部是如何创建,表示一个 Java 类的,静态变量存储在哪里,如何初始化,虚拟机如何访问到这些静态变量。并给出实验佐证。

Java 中的垃圾回收策略

介绍了 Java 虚拟机中,如何判断一个对象是否存活,各种垃圾回收算法的原理,以及HotSpot中的各种垃圾回收器的特点。

#虚拟机
Haskell Platform安装过程

Haskell 是一种纯函数式编程语言。Haskell Platform 是Haskell的一个整合的开发环境。本文主要介绍Haskell Platform的安装过程。操作系统:Ubuntu 12.04.1 LTS; Linux 3.2.0-29-generic-pae1 下载Haskell Platform和GHChttp://www.haskell.org/

字符指针与字符数组真正的区别

本文从字符串指针与字符串数组的例子开始,讲述了C语言中使用内存的不同方式,以及他们与Linux内存布局的关系。并使用Linux下的工具对想法进行了验证。

「学习笔记——Linux」Linux软件安装:源代码编译与软件安装

Linux软件安装:源代码与软件安装1 开源软件的一些基本概念1.1 什么是开放源码,编译程序与可执行文件1.2 什么是函数库1.3 什么是 make 与 configure2 C语言编译简单范例3 使用make进行宏编译4 通过编译源代码进行软件安装1 开源软件的一些基本概念1.1 什么是开放源码,编译程序与可执行文件可执行文件

OpenJDK 源码阅读之 Java 字节流输出类的实现

通过阅读 OpenJDK 源代码,描述了 Java IO 中,字节输出系列6个类的实现方式,并简单介绍了与压缩解压缩相关的几个类。

OpenJDK 源代码阅读之 Arrays

概要类继承关系java.lang.Objectjava.util.Arrays定义public class Arraysextends Object要点此类主要是提供了一些操作数组的方法,比如排序啊,搜索啊。也提供一个工厂,用于将数组当成一个 List。实现quick sortpublic static voi

#算法
「深入理解计算系统」从Hello World开始

根据《深入理解操作系统》,记录了hello world程序从源代码到编译到执行的整个过程,对底层的执行过程进行了深入描述。

    共 12 条
  • 1
  • 2
  • 请选择