按分类归档:其他分类


java程序的运行机制详细分析

JVM(Java虚拟机)一种用于计算设备的规范,可用不同的方式(软件或硬件)加以实现。编译虚拟机的指令集与编译微处理器的指令集非常类似。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。        Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。 1.为什么要使用Java虚拟机        Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 Java运行机制 Java程序的运行必须经过编写、编译、运行三个步骤。 编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。 编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。 运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。这一过程如图1.1所示。

Linux System Monitorng 笔记

概念 : 性能优化就是找到系统处理中的瓶颈以及去除这些的过程 ———————————————————————————————————-如何查找出系统性能问题:                                                           ___I/0应用型(Dbserver)1.确定应用类型: |___                   CPU(运算)应用型(例如:webserver,mailserver) 2.确定基准线统计 :建立一个用来比较的准线标准 ———————————————————————————————————-系统高负载的问题:大量的页调入请求导致内存队列的拥塞 网卡的大吞吐量可能导致更多的 CPU开销 大量的CPU开销又会尝试更多的内存使用请求 大量来自内存的磁盘写请求可能导致更多的 CPU 以及 IO问题 ……………………………………………….CPU…………………………………………. 概念:CPU 利用率  : 就是定义CPU 使用的百分比 User Time   : 在user space中被执行进程在CPU 开销时间百分比 System Time : 内核线程以及中断时间 Wait IO     : I/O 请求等待时间 Idle        : 空闲 ———————————————————————————————————- 性能指标: 每次内核的上下文切换,资源被用于关闭在CPU寄存器中的线程和放置在队列中.系统中越多的上下文切换,在处理器的调度管理下,内核将得到更多的工作. 一个标准的Linux 内核可以运行50 至 50,000 的处理线程 当运行队列越来越巨大,进程线程将花费更多的时间获取被执行 系统 load 就是指在CPU 队列中有多少数目的线程,以及其中当前有多少进程线程数目被执行的组合.如果一个双核系统执行了2个线程,还有4个在运行队列中,则 [...]

perl时间函数与日志分析脚本

#!/usr/bin/perl #————————————–# # Script Name: AccessLog.pl # # Writer by : Tat # # Create time: 2012-03-27 # # Last update: 2012-03-30 # # Ver: 0.1 beta # #————————————–# use strict; use warnings; #———-数据统计变量—————- my $sum = 0; #总日志数量 my $code5 = 0; #Http 500错误页 my $code2 = 0; #Http 200页 my $tophome=0; #进入主页数据 #———-条件匹配变量————— [...]

高仿快乐麻花源代码

程序采用DEDE5.7内核。  整站打包,带安装教程。 在淘宝上买的,现在用不上,共享出来。   下载地址  

优化TCP内核参数提高服务器并发

在服务器硬件资源额定有限的情况下,最大的压榨服务器的性能,提高服务器的并发处理能力,是很多运维技术人员思考的问题。要提高linux系统下的负载能力,可以使用nginx等原生并发处理能力就很强的web服务器,如果使用Apache的可以启用其Worker模式,来提高其并发处理能力。除此之外,在考虑节省成本的情况下,可以修改linux的内核相关TCP参数,来最大的提高服务器性能。当然,最基础的提高负载问题,还是升级服务器硬件了,这是最根本的。 Linux系统下,TCP连接断开后,会以TIME_WAIT状态保留一定的时间,然后才会释放端口。当并发请求过多的时候,就会产生大量的TIME_WAIT状态的连接,无法及时断开的话,会占用大量的端口资源和服务器资源。这个时候我们可以优化TCP的内核参数,来及时将TIME_WAIT状态的端口清理掉。 本文介绍的方法只对拥有大量TIME_WAIT状态的连接导致系统资源消耗有效,如果不是这种情况下,效果可能不明显。可以使用netstat命令去查TIME_WAIT状态的连接状态,输入下面的组合命令,查看当前TCP连接的状态和对应的连接数量: netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ 这个命令会输出类似下面的结果: LAST_ACK 16 SYN_RECV 348 ESTABLISHED 70 FIN_WAIT1 229 FIN_WAIT2 30 CLOSING 33 TIME_WAIT 18098

备份Linux的方法(dd命令与cpio命令)

使用dd命令备份 dd命令可以读取磁盘设备的内容(几乎是直接读取扇区),然后将整个设备备份成一个文件。 # dd if=”input file” of=”output file” bs=”block size” count=”number” if:input file,也可以是设备 of:output file,也可以使设备 bs:规划的一个block的大小,若不指定,默认是512bytes(一个扇区的大小) count:多少个bs的意思 # dd if=/etc/passwd of=/tmp/passwd.back 将/etc/passwd中/tmp/passwd.back中去 # dd if=/dev/hdc of=/tmp/mbr.back bs=512 count=1 将自己磁盘上第一个扇区备份下来 找出系统最小的分区,并备份 # df -h # dd if=/dev/hdc1 of=/tmp/boot.whole.disk 若想还原,就反向回去 dd命令可以创建大型文件: # dd if=/dev/zero of=test.img bs=1M count=512 创建一个512M大小的文件test.img 其实这个也可以理解成为备份,只不过是一个全部被0填充的文件。 /dev/zero是已知输出0的设备