- 博客(70)
- 资源 (6)
- 收藏
- 关注
转载 ubuntu 13.04环境编译OpenJDK7
从openjdk代码仓库下载源码 需要安装Mercurial(hg)版本管理工具。写道sudo apt-get install mercurial 安装Mercurial的hclone扩展插件:写道hg clone http://bitbucket.org/pmezard/hgforest-crew 将以下内容添加到$HOME/.hgrc文件中,如果没有则自己
2015-10-13 17:52:15
831
转载 Axis2开发WebService客户端 的3种方式
第一RPC方式,不生成客户端代码第二,document方式,不生成客户端代码第三,用wsdl2java工具,生成客户端方式调用Java代码 package samples.quickstart.client; import javax.xml.namespace.QName; import org.apache.axiom.om.OMAbstr
2015-09-08 15:41:03
440
转载 ModR/M,SIB编码的含义
让我们从最经常用到的域开始学起——ModR/M。在开始之前,先来讲一些最基础的概念。一个字节如果被转换成二进制,则是由8位(bit)来表示(不足8位的话则高位用0来补足),例如:16进制 2进制 B7 1011 0111 3A 0011 1010 示例中的B7的二进制是1011 0111,这是典型的4:4表示格式——1011表示的是B,0111表示的是7,这样,1011 0111表示的就是B7了。
2015-08-31 21:51:50
3044
转载 深入理解C语言的函数调用过程
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。 先看一个最简单的程序:点击(此处)折叠或打开 /*test.c*/#include stdio.h>int foo1(int m,int n,int p){ int x = m+ n + p; retu
2015-08-24 17:00:47
510
原创 hotspot日记
1、 base_create是klass_oop的成员函数2、 klass_vtble定义了allocate_pernament的虚函数以及宏a. 每个子类都有各自的allocate_pernament函数。由于虚函数表,也有其父类的函数接口b. Base_create通过vtable调用子类的alloc进行分配,最后分配一个句柄3、 所有子类通过调用
2015-08-20 22:09:59
121
转载 gdb调试方法
GDB是一个强大的命令行调试工具。虽然X Window提供了GDB的图形版DDD,但是我仍然更钟爱在命令行模式下使用GDB。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Wind
2015-08-12 11:10:24
332
转载 sourceinsight注释中文的解决方法
解决方案如下:一、单个文件转换对于单个文件,好说,只要将非ANSI码格式的文件转换成ANSI码格式即可,方法如下:1、将文件用ultraEdit32打开,选择 文件->转换->UTF-8到ANSI, 然后保存。重新用source insight打开就好了。或者使用记事本打开非ANSI格式的源代码文件,另存为,在保存选项对话框中,在编码格式一栏中发现是UTF-8,选择ANSI一项
2015-08-07 14:00:08
2355
转载 Doug Lea的malloc
内存分配器来自于底层软件工程的案例研究.我从1987年开始编写一个内存分配器,并且一直维护和完善它.这个分配器提供了标准C例程malloc(),free()和realloc(),以及一些辅助工具例程的实现.内存分配器 Doug Lea简介内存分配器来自于底层软件工程的案例研究.我从1987年开始编写一个内存分配器,并且(在许多志愿者的帮助下)一直维护和完善它.这个分配器实现
2015-08-05 14:34:46
707
转载 brk优缺点,分析的很到位
Both brk() and mmap() cause pages to be mapped into the process's address space. mmap() can be used to map pages of a file into memory, but it can also be used only to map pages, i.e., allocate memory
2015-08-05 14:12:32
737
转载 逻辑地址、线性地址、物理地址和虚拟地址
一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这
2015-07-28 17:07:21
274
转载 Windows bash小结(部分参考网络)
%~dp0 表示当前bat所在的目录。第一部分:批处理的专用命令 批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。 1、 REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。 2、 ECHO ECHO 是一个回显命
2015-07-24 17:44:32
771
转载 windows批处理学习(部分转载自网络)
%~dp0 表示当前bat所在的目录。第一部分:批处理的专用命令 批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。1、 REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。 2、 ECHO ECHO 是一个回显
2015-07-24 17:34:20
391
转载 Android客户端和服务端如何使用Token和Session
对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西。一、我们先解释一下他的含义:1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。2
2015-07-21 11:24:25
635
转载 notepad++查看源码
1.载入一个项目文件夹a.点击菜单 view/project/project panel 1b.在出现的 project panel 窗口中,右击workspace,选择 add new project.并为project命名,如mypro。c.右击 project 名称,选择 add files from directory。选择我们源文件所在的文件夹。d.保存项目。右击 wor
2015-07-06 15:31:10
3340
转载 C++11 CAS无锁函数compare_exchange_weak的使用
关于C++11的并发指南可以看这个Blog。这里主要想谈一下对compare_exchange_weak这个C++11用来实现CAS无锁算法函数的理解。可以先看一下cplusplus给出的用这个函数实现无锁链表的例子:// atomic::compare_exchange_weak example:#include // std::cout#include
2015-05-14 17:15:39
4247
原创 rosalloc.cc
namespace art {namespace gc {namespace allocator {extern "C" void* art_heap_rosalloc_morecore(RosAlloc* rosalloc, intptr_t increment);static constexpr bool kUsePrefetchDuringAllocRun =
2015-05-04 15:11:52
264
原创 rosalloc.h
// A runs-of-slots memory allocator.class RosAlloc { private: // Represents a run of free pages. class FreePageRun { public: byte magic_num_; // The magic number used for debugging
2015-05-04 14:56:58
195
转载 深入浅出Java垃圾回收机制
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开发经验。如果你曾经想过如何正确的选择GC算法,那意味着你已经完全理解你所开发的应用的特点。当然,
2015-04-22 10:58:20
361
转载 Linux大文件分割split和合并cat使用方法
本文主要介绍linux下两个命令:split和cat。其中,相信大家都熟悉cat命令,一般用来查看一个文件的内容,但是它还其它的功能,比如这里要介绍的文件合并功能,它可把多个文件内容合并到一个文件中。从split词义不拿理解,其为分割之意,常用于分割大文件。下面详细介绍。split命令 — 分割文件语法:split [--help][--version][-][-l][-b][-C][-d
2015-04-03 20:02:16
1564
转载 Java中继承thread类与实现Runnable接口的区别(转载,写得不对,不过有参考意义)
Java中线程的创建有两种方式:1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中2. 通过实现Runnable接口,实例化Thread类在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程。当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下这两种方式实现的两种
2015-04-03 11:56:55
427
原创 art dex2oat
// Check early that the result of compilation can be written // 创建oat文件 std::unique_ptr oat_file; bool create_file = !oat_unstripped.empty(); // as opposed to using open file descriptor i
2015-01-16 17:58:44
151
转载 Activity 和 Task
Activity 和 task 的设计摘要Activity 是 Android 应用的主要组成部分。 除了自己写Activity之外,你还可以利用intent,轻松地重用其它应用的Activity。 你可以让你应用里的Activity能被其它应用通过intent使用。 系统的Activity栈几乎可以处理所有的情况。不过有两种情况你大概需要自己设置flag之类,来确定the right t
2014-12-12 10:36:23
452
转载 自己动手编译Linux内核
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://sprocessor.blog.51cto.com/160089/28903整理了一下Linux内核编译的方法,原始内核版本为Linux-2.4.20.8,新内核版本为Linux-2.4.22,其它内核版本编译方法类似。一 准备工作首先当然是获得内核了,可以
2014-12-11 16:15:21
467
转载 Android之system_server与zygote之作用
第三天,google说,伊甸园(linux世界)要被隔离,于是便创造了亚当(Adm)与夏娃(Eve),称它为zygote和system_server--xxx第二天,init跑完了,它对于android系统,最重要的,就是启动了zygote和system-server,谁是Adam谁是Eve?从分析init.rc来看?--start-system-server只是个
2014-10-11 17:07:17
548
转载 学习较底层编程:动手写一个C语言编译器
动手编写一个编译器,学习一下较为底层的编程方式,是一种学习计算机到底是如何工作的非常有效方法。编译器通常被看作是十分复杂的工程。事实上,编写一个产品级的编译器也确实是一个庞大的任务。但是写一个小巧可用的编译器却不是这么困难。秘诀就是首先去找到一个最小的可用工程,然后把你想要的特性添加进去。这个方法也是Abdulaziz Ghuloum在他那篇著名的论文“一种构造编译器的捷径”里所提到的办法
2014-09-30 08:53:19
671
转载 Android彻底关闭应用程序
最近学习做android的游戏开发时候,发现一个关于android退出时不能彻底关闭的问题,比如:一个程序里new 出了N多个Thread,这样在退出程序的可能不能完全关闭,最后发现,只用finish()方法,有时候不能彻底退出,个人感觉还是要在适当的地方加上:System.exit(0);-=====-=-=-=-=-=======-----=====1. finish(
2014-09-28 11:08:08
595
转载 dns备用
74.125.237.1 dl-ssl.google.com 74.125.21.98 0.docs.google.com74.125.21.98 0.drive.google.com74.125.21.98 1.docs.google.com74.125.21.98 1.drive.google.com74.125.21.98 10.
2014-09-23 17:54:12
439
转载 Android处理图片OOM的若干方法小结
前言众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定)。因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片、音频文件、视频文件等多媒体资源;由于Android系统对音频、视频等资源做了边解析便播放的处理,使用时并不会把整个文件加载到内存中,一般不会出现内存溢出(以下简称OOM)的错误,因此它们的内存消耗问
2014-09-23 15:05:26
375
转载 Android的内存泄漏和调试
Android的内存泄漏和调试 一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的.那么GC怎么能够确认某一个对象是不是已经被废弃了呢?Java采用了有向图的原理。Java将引用关系考虑为图的有向边,有向
2014-09-09 15:05:47
339
原创 heap initial
1.runSelectLoop -->runOnce --> Zygote.forkAndSpecialize -->nativeForkAndSpecialize --> Dalvik_dalvik_system_Zygote_forkAndSpecialize -->forkAndSpecializeCommon --> dvmGcPreZygoteFork --> d
2014-08-29 18:04:14
428
原创 heap gc3
//遍历bitmap,找到垃圾对象的指针,回调相关函数void dvmHeapBitmapSweepWalk(const HeapBitmap *liveHb, const HeapBitmap *markHb, uintptr_t base, uintptr_t max, Bi
2014-08-27 19:04:48
536
原创 heap gc2
void dvmHeapScanMarkedObjects(void){ GcMarkContext *ctx = &gDvm.gcHeap->markContext; assert(ctx->finger == NULL); /* The bitmaps currently have bits set for the root set.
2014-08-27 19:02:44
685
原创 heap gc1
void dvmCollectGarbageInternal(const GcSpec* spec){ GcHeap *gcHeap = gDvm.gcHeap; u4 gcEnd = 0; u4 rootStart = 0 , rootEnd = 0; u4 dirtyStart = 0, dirtyEnd = 0; size_t numOb
2014-08-27 19:01:30
725
原创 heap alloc
/* Try as hard as possible to allocate some memory. */static void *tryMalloc(size_t size){#ifdef HAVE_ANDROID_OS char prop_value[PROPERTY_VALUE_MAX] = {'\0'};#endif char* hprof_fil
2014-08-27 18:52:51
729
原创 heap in dalvik
/* Try as hard as possible to allocate some memory. */static void *tryMalloc(size_t size){#ifdef HAVE_ANDROID_OS char prop_value[PROPERTY_VALUE_MAX] = {'\0'};#endif char* hprof_fil
2014-08-27 18:52:08
374
转载 android dalvik heap管理,androiddalvik
最近遇到了一个dalvik memory相关的问题,对dalvik的heap管理部分做了一些了解,在此总结一下,主要是下面3个方面的内容:1,java heap的实现,和native heap的差异。2,gc的实现。3,配置heap的相关prop的含义。davlik java heap---------------------------------------------------------
2014-08-22 16:58:04
542
转载 JNI官方规范中文版——如何使用JNI中的global reference和local reference
JNI提供了一些实例和数组类型(jobject、jclass、jstring、jarray等)作为不透明的引用供本地代码使用。本地代码永远不会直接操作引用指向的VM内部的数据内容。要进行这些操作,必须通过使用JNI操作一个不引用来间接操作数据内容。因为只操作引用,你不必担心特定JVM中对象的存储方式等信息。这样的话,你有必要了解一下JNI中的几种不同的引用:1、 JNI支持三种引用:局部引用、全局
2014-08-19 16:07:27
1258
转载 Dalvik虚拟机 Finalize 方法执行分析
Finalize 方法是java object在被heap完全回收之前,一定会被调用的方法。但是,虚拟机规范不保证该方法会在什么时候执行。前段时间,有个在native out of memory的bug,就是因为android的cts中有个leakmemory测试,会大量分分配native内存,然后在finalize中释放。但是由于lemur并没有及时的保证执行finalize方法导致虚拟地址用完
2014-08-18 15:55:17
1010
转载 java.lang.ref.Reference
Java代码 Reference提供了一些引用的基本方法以及静态代码块最高优先级启动ReferenceHandler线程 [java] view plaincopyprint?Reference提供了一些引用的基本方法以及静态代码块最高优先级启动ReferenceHandler线程Reference提供了一些引用的基本方法以及静态代
2014-08-15 17:33:16
647
转载 Java 类的C++描述
类对像内存实现java.lang.Class&ClassObject在java语言里的特殊的类 java.lang.Class,它保存了类的信息。我们可以用它得到类的名字、成员、方法包括构造方法等等。举个例子,我们写java.lang.String stringClass=Class.forName(“java.lang.String”);于是我们得到了java.lan
2014-08-15 15:22:35
471
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人