- 博客(22)
- 资源 (20)
- 收藏
- 关注
转载 使用virsh调整运行中的KVM虚拟机内存,CPU(centos6.x)
centos5.x版本不支持动态调整内存,CPU以下在centos6.4上测试通过 1.查看虚拟机信息# virsh dumpxml vm1| head -n 10<domain type='kvm' id='41'> <name>vm2</name> <uuid>160d7bce-95b4-5a3a-2289-018cf1e8a6ad</uuid> <memory unit='KiB
2016-02-26 10:26:38 6940
转载 vector中erase用法注意事项
vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase( iterator _Where); iterator erase( iterator _First, iterator _Last); 如果是删除指定位置的元素时: 返回值是一个迭代器,指向删除元素下一个元素
2016-02-25 23:14:52 871
原创 http请求的一些解释
下面是一个http请求:GET /baidu/blog/item/6605d1b4eb6433738ad4b26d.html HTTP/1.1 Host: hi.baidu.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
2016-02-25 15:48:45 639
转载 java volatile关键字(及使用场景)
当一个变量被定义为volatile之后,就可以保证此变量对所有线程的可见性,即当一个线程修改了此变量的值的时候,变量新的值对于其他线程来说是可以立即得知的。可以理解成:对volatile变量所有的写操作都能立刻被其他线程得知。但是这并不代表基于volatile变量的运算在并发下是安全的,因为volatile只能保证内存可见性,却没有保证对变量操作的原子性。比如下面的代码: /**
2016-02-24 10:55:24 6005
原创 LeetCode:306. Additive Number
原题: Additive number is a string whose digits can form additive sequence. A valid additive sequence should contain at least three numbers. Except for the first two numbers, each subsequent number in t
2016-02-23 16:53:20 2377
原创 LeetCode: 318. Maximum Product of Word Lengths
原题: Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case
2016-02-23 14:28:41 489
转载 树的有关定义和性质
下一页遍历概念 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历方案1.遍历方案 从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点
2016-02-23 14:13:14 617
原创 Java 等待多个子线程 join
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待 t 线程,等待时间是1000毫秒要想主线程main等待若干线程结束之后再执行,需
2016-02-19 17:30:11 2221 2
转载 python中执行shell命令的几个方法
这篇文章主要介绍了python中执行shell命令的几个方法,本文一共给出3种方法实现执行shell命令,需要的朋友可以参考下最近有个需求就是页面上执行shell命令,第一想到的就是os.system,代码如下:os.system('cat/proc/cpuinfo')但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。尝试第二种方案 os.popen()代码如下
2016-02-18 14:46:46 1187
转载 Linux下java获取CPU、内存、磁盘IO、网络带宽使用率
一、CPU使用proc文件系统,"proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。"从/proc文件系统获取cpu使用情况: cat /proc/stat在Linux的内核中,有一个全 局变量:Jiffies。 Jiff
2016-02-18 11:12:01 3145
转载 linux下/proc/stat 计算CPU利用率
一般来说对于需要大量cpu计算的进程,当前端压力越大时,CPU利用率越高。但对于I/O网络密集型的进程,即使请求很多,服务器的CPU也不一定很到,这时的服务瓶颈一般是在磁盘的I/O上。比较长见的就是,大文件频繁读写的cpu开销远小于小文件频繁读写的开销。因为在I/O吞吐量一定时,小文件的读写更加频繁,需要更多的cpu来处理I/O的中断。在Linux/Unix下,CPU利用率分为用户态,系统
2016-02-18 10:43:25 1349
原创 Java序列化示例
序列化是一种将对象以一连串的字节描述的过程,用于解决在对对象流进行读写操作时所引发的问题。那么什么情况下需要使用序列化呢?1、需要通过网络来发送对象,或对象的状态需要被持久化到数据库或文件中。2、序列化能实现深复制,即可以复制引用的对象。package hanjia;import java.io.FileInputStream;import java.io.FileNot
2016-02-12 18:51:03 574
原创 JVM类的加载过程
类的加载过程类加载器的主要任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM内部,然后转换为一个与目标类对应的java.lang.Class对象实例。当然类加载器所执行的加载操作仅仅是属于JVM中类加载过程中的一个阶段而已,一个完整的类加载器过程必须经历加载、连接、初始化这3个步骤。如下图所示: 简单来说,类的加载
2016-02-11 00:00:58 701
原创 Java自定义类加载器
JVM支持两种类型类加载器,分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。在此大家需要注意。从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。无论类加载器的类型如何划分,
2016-02-09 21:59:13 1474
转载 KMP算法详解
个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有 所收获的~~,另外有关模式函数值next[i]确实有很多版本啊,在另外一些面向对象的算法描述书中也有失效函数 f(j)的说法,其实是一个意思,即next[j]=f(j-1)+1,不过还是next[j]这种表示法好理解啊:
2016-02-06 14:46:46 538
原创 字节码文件的内部组成结构
参考《Java虚拟机规范Java SE7版》的描述来看,每一个字节码文件其实都对应着全局唯一的一个类或者接口的定义信息。字节码文件采用的是一种类似于C语言结构体的伪结构来描述字节码文件格式。为了避免与类的字段、实例等概念产生混淆,本书将用于描述类结构格式的内容定义为项(item) 每一项都包括类型、名称以及该项的数量。类型可以是表明,也可以是“基本类型”。包含在字节码文件中,各
2016-02-06 12:03:26 2490
原创 拓扑排序示例
拓扑排序示例 在图论中,一个有向无环图的所有顶点可以排列成一个现行序列,当这个序列满足以下条件时,称该序列为一个满足图的拓扑次序(topological order)的序列。1) 图中每个顶点在序列中只出现一次;2) 对于图中任意一条有向边(u,v),在该序列中顶点u一定在顶点v之前。这样的序列也被称为拓扑序列,对有向图的所有顶点排序,获得拓扑序列的过程就是有向图的拓扑排序
2016-02-05 19:36:38 1288
原创 垃圾收集算法
1、 标记-清除算法标记-清除算法是最基本的垃圾收集算法,如它的名字一样,算法分为“标记”和“清除”两个过程:首先标记所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象,标记过程就是判断对象是否已经死亡。标记-清除算法的主要缺点有两个:一个是效率问题,标记和清除过程效率都不高;另一个是空间问题,标记之后会产生大量不连续的内存碎片,空间碎片太多可能会导致当程序在以后的运行过程中需
2016-02-05 15:08:04 485
原创 判断java对象是否还“活着”
判断java对象是否还“活着”堆中存放着Java世界中所有对象的实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象是否还活着,下面介绍判断对象是否还活着的两种方法:1、 引用计数法这个比较常用,思路为:为对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;档引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。引用计数算法实现简单,判定
2016-02-05 13:06:41 1382
原创 测试产生Java内存异常
1、 Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,就会在对象数量到达最大堆容量时产生内存溢出异常。 首先我们设置JVM使用的堆大小,设置方式为,点击运行右边的下箭头,并点击“Run Configurations”,在(x)=Argumens一列,在VM argumengs文本框中填写如下内容(设置堆最大空间和最小空间为20M): -verbose:gc -Xms20M
2016-02-04 12:33:32 659
原创 JVM 运行时数据区域
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及各自的创建和销毁时间。有的的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(第二版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示: 下面分别说明这些内存区域的作用:1、 程序
2016-02-04 11:31:07 522
转载 改变libvirt VM镜像的默认位置的方法
提问: 我使用libvirt和virt-manager在我的Linux系统上创建虚拟机。我注意到虚拟机镜像位于/var/lib/libvirt/images目录。有没有办法改变虚拟机镜像的默认路径?libvirt和它的GUI前端virt-manager可以使用不同的虚拟机管理程序创建和管理VM,例如LVM和Xen。默认上所有的虚拟机镜像通过libvirt创建到/var/lib/libvir
2016-02-01 15:02:20 6226
Java程序性能优化 让你的Java程序更快、更稳定 pdf [葛一鸣编著][清华大学出版社][2012.10][400页][13093953]
2017-11-29
云计算网络珠玑 完整版 pdf part1 注意还有part2
2016-11-06
图说设计模式 Graphic Design Patterns
2016-08-27
中文情感分析 酒店评论预料
2015-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人