yago13电脑系统重装-aya重装系统
1.Yago13pro1370增内存方法
2.怎么用java代码去查询yago数据集
Yago13pro1370增内存方法
大家可以去购买这个内存,插到YOGA电源线附近那个读卡器里,就可以给电脑简单的扩容了,但读取速率速度没SSD固态硬盘这么快,价格也比移动硬盘贵,可就图个方便,白富美和高富帅不用愁了
还有几种方法可以参考一下:方法一:增加内存条,
1.第一,先看下自己的电脑的内存剩余多少,总内存是多少,右击我的计算机然后找到属性栏,点开然后看内存是否需要添加。
2.如果觉得需要的话可能拿把螺丝刀把自己的电脑主机拆开,把原有的内存条拿出来看看是几代的,然后到电脑商城或者电子城之类的店铺去买相应的内存条,想增加多少买多少G的。然后把内存条插到另外一个插槽就可以了。
方法二:增加电脑的虚拟内存
1.选中计算机,右击点属性,然后点“高级系统设置”。
2.在系统属性“高级”下点设置,再在“性能属性”中点高级,再选择下面的“更改”。
3.最后就可以设置虚拟内存的大小,注意,虚拟内存应设置为实际内存的1.5倍左右,2G的内存可设置为2048-4096。
怎么用java代码去查询yago数据集
供程序利用资源(内存、CPU间、网络带宽等)限优化目让程序用尽能少资源完预定任务优化通包含两面内容:减代码体积提高代码运行效率本文讨论主要何提高代码效率
Java程序性能问题部原并于Java语言于程序本身养代码编写习惯非重要比确、巧妙运用java.lang.String类java.util.Vector类能够显著提高程序性能面我具体析面问题
1、 尽量指定类final修饰符带final修饰符类派Java核API许应用final例例java.lang.StringString类指定final防止覆盖length()另外指定类final则该类所都finalJava编译器寻找机内联(inline)所final(具体编译器实现关)举能够使性能平均提高50%
2、 尽量重用象特别String 象使用现字符串连接情况应用StringBuffer 代替由于系统仅要花间象能需花间些象进行垃圾收处理象给程序性能带影响
3、 尽量使用局部变量调用传递参数及调用创建临变量都保存栈(Stack)速度较快其变量静态变量、实例变量等都堆(Heap)创建速度较慢另外依赖于具体编译器/JVM局部变量能进步优化请参见《尽能使用堆栈变量》
4、 要重复初始化变量 默认情况调用类构造函数
Java变量初始化确定值:所象设置null整数变量(byte、short、int、long)设置0floatdouble变量设置0.0逻辑值设置false类另类派点尤其应该注意用new关键词创建象构造函数链所构造函数都自调用
5、 JAVA + ORACLE 应用系统发java内嵌SQL语句尽量使用写形式减轻ORACLE解析器解析负担
6、 Java 编程程进行数据库连接、I/O流操作务必使用完毕即使关闭释放资源些象操作造系统销稍慎导致严重
7、 由于JVM其自身GC机制需要程序发者考虑定程度减轻发者负担同遗漏隐患创建象消耗系统量内存严重导致内存泄露保证期象及收具重要意义JVM收垃圾条件:象引用;JVMGC并非十机智即使象满足垃圾收条件定立即收所建议我象使用完毕应手置null
8、 使用同步机制应尽量使用同步代替代码块同步
9、 尽量减少变量重复计算
例:for(int i = 0;i < list.size; i ++) {
…
}
应替换:
for(int i = 0,int len = list.size();i < len; i ++) {
…
}
10、尽量采用lazy loading 策略即需要候才始创建
例: String str = aaa;
if(i == 1) {
list.add(str);
}
应替换:
if(i == 1) {
String str = aaa;
list.add(str);
}
11、慎用异
异性能利抛异首先要创建新象Throwable接口构造函数调用名fillInStackTrace()本(Native)fillInStackTrace()检查堆栈收集调用跟踪信息要异抛VM必须调整调用堆栈处理程创建新象异能用于错误处理应该用控制程序流程
12、要循环使用:
Try {
} catch() {
}
应其放置外层
13、StringBuffer 使用:
StringBuffer表示变、写字符串
三构造 :
StringBuffer (); //默认配16字符空间
StringBuffer (int size); //配size字符空间
StringBuffer (String str); //配16字符+str.length()字符空间
通StringBuffer构造函数设定初始化容量明显提升性能提构造函数StringBuffer(int
length)length参数表示前StringBuffer能保持字符数量使用ensureCapacity(int
minimumcapacity)StringBuffer象创建设置容量首先我看看StringBuffer缺省行再找条更提升性能途径
StringBuffer内部维护字符数组使用缺省构造函数创建StringBuffer象候没设置初始化字符度StringBuffer容量初始化16字符说缺省容量16字符StringBuffer达容量候自身容量增加前2倍再加2(2*旧值+2)使用缺省值初始化接着往面追加字符追加第16字符候容量增加34(2*16+2)追加34字符候容量增加70(2*34+2)论何事要StringBuffer达容量创建新字符数组重新旧字符新字符都拷贝遍――太昂贵点所总给StringBuffer设置合理初始化容量值错带立竿见影性能增益
StringBuffer初始化程调整作用由见斑所使用合适容量值初始化StringBuffer永远都佳建议
14、合理使用Java类 java.util.Vector
简单说Vectorjava.lang.Object实例数组Vector与数组相似元素通整数形式索引访问Vector类型象创建象能够根据元素增加或者删除扩展、缩请考虑面向Vector加入元素例:
Object obj = new Object();
Vector v = new Vector(100000);
for(int I=0;
I<100000; I++) { v.add(0,obj); }
除非绝充足理由要求每都新元素插入Vector前面否则面代码性能利默认构造函数Vector初始存储能力10元素新元素加入存储能力足则存储能力每加倍Vector类象StringBuffer类每扩展存储能力所现元素都要复制新存储空间面代码片段要比前面例快几数量级:
Object obj = new Object();
Vector v = new Vector(100000);
for(int I=0; I<100000; I++) { v.add(obj); }
同规则适用于Vector类remove()由于Vector各元素间能含空隙删除除元素外任意其元素都导致删除元素元素向前移说Vector删除元素要比删除第元素销低几倍
假设要前面Vector删除所元素我使用种代码:
for(int I=0; I<100000; I++)
{
v.remove(0);
}
与面代码相比前面代码要慢几数量级:
for(int I=0; I<100000; I++)
{
v.remove(v.size()-1);
}
Vector类型象v删除所元素:
v.removeAllElements();
假设Vector类型象v包含字符串Hello考虑面代码要Vector删除Hello字符串:
String s = "Hello";
int i = v.indexOf(s);
if(I != -1) v.remove(s);
些代码看起没错误同性能利段代码indexOf()v进行顺序搜索寻找字符串Helloremove(s)要进行同顺序搜索改进版本:
String s = "Hello";
int i = v.indexOf(s);
if(I != -1) v.remove(i);
版本我直接remove()给待删除元素精确索引位置避免第二搜索更版本:
String s = "Hello"; v.remove(s);
我再看关Vector类代码片段:
for(int I=0; I++;I < v.length)
v包含100,000元素代码片段调用v.size()100,000虽size简单仍旧需要调用销至少JVM需要配置及清除堆栈环境for循环内部代码任何式修改Vector类型象v面代码改写面种形式:
int size = v.size(); for(int I=0; I++;I<size)
虽简单改仍旧赢性能毕竟每CPU周期都宝贵
15、复制量数据使用System.arraycopy()命令
16、代码重构:增强代码读性
例:
public class ShopCart {
private List carts ;
…
public void add (Object item) {
if(carts == null) {
carts = new ArrayList();
}
crts.add(item);
}
public void remove(Object item) {
if(carts. contains(item)) {
carts.remove(item);
}
}
public List getCarts() {
//返读列表
return Collections.unmodifiableList(carts);
}
//推荐种式
//this.getCarts().add(item);
}
17、用new关键词创建类实例
用new关键词创建类实例构造函数链所构造函数都自调用象实现Cloneable接口我调用clone()clone()调用任何类构造函数
使用设计模式(Design Pattern)场合用Factory模式创建象则改用clone()创建新象实例非简单例面Factory模式典型实现:
public static Credit getNewCredit() {
return new Credit();
}
改进代码使用clone()所示:
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit() {
return (Credit) BaseCredit.clone();
}
面思路于数组处理同用
18、乘除
考虑面代码:
for (val = 0; val < 100000; val +=5) {
alterX = val * 8; myResult = val * 2;
}
用移位操作替代乘操作极提高性能面修改代码:
for (val = 0; val < 100000; val += 5) {
alterX = val << 3; myResult = val << 1;
}
修改代码再做乘8操作改用等价左移3位操作每左移1位相于乘2相应右移1位操作相于除2值提虽移位操作速度快能使代码比较难于理解所加些注释
19、JSP页面关闭用
见误解session客户端访问创建事实直某server端程序调用HttpServletRequest.getSession(true)语句才创建注意JSP没显示使用 关闭session则JSP文件编译Servlet自加条语句HttpSession
session = HttpServletRequest.getSession(true);JSP隐含session象历由于session消耗内存资源打算使用session应该所JSP关闭
于些需跟踪状态页面关闭自创建节省些资源使用page指令:
20、JDBC与I/O
应用程序需要访问规模数据集则应考虑使用块提取式默认情况JDBC每提取32行数据举例说假设我要遍历5000行记录集JDBC必须调用数据库157才能提取全部数据块改512则调用数据库数减少10
[p][/p]21、Servlet与内存使用
许发者随意量信息保存用户些候保存象没及垃圾收机制收性能看典型症状用户系统周期性变慢却能原归于任何具体组件监视JVM堆空间表现内存占用起落
解决类内存问题主要二种办第种办所作用范围Bean实现HttpSessionBindingListener接口要实现valueUnbound()显式释放Bean使用资源另外种办尽快作废数应用服务器都设置作废间隔间选项另外用编程式调用setMaxInactiveInterval()该用设定作废前Servlet容器允许客户请求间隔间秒计
22、使用缓冲标记
些应用服务器加入面向JSP缓冲标记功能例BEAWebLogic Server6.0版本始支持功能Open
Symphony工程同支持功能JSP缓冲标记既能够缓冲页面片断能够缓冲整页面JSP页面执行目标片断已经缓冲则该片断代码用再执行页面级缓冲捕获指定URL请求并缓冲整结页面于购物篮、目录及门户网站主页说功能极其用于类应用页面级缓冲能够保存页面执行结供继请求使用
23、选择合适引用机制
典型JSP应用系统页、页脚部往往抽取根据需要引入页、页脚前JSP页面引入外部资源主要两种:include指令及include作
include指令:例<%@ include file="copyright.html"
%>该指令编译引入指定资源编译前带include指令页面指定资源合并文件引用外部资源编译确定比运行才确定资源更高效
include作:例<jsp:include page="copyright.jsp"
/>该作引入指定页面执行结由于运行完输结控制更加灵引用内容频繁改变或者主页面请求没现前引用页面确定使用include作才合算
24、及清除再需要
清除再许应用服务器都默认超间般30钟应用服务器需要保存更内存容量足操作系统部内存数据转移磁盘应用服务器能根据近频繁使用(Most
Recently
Used)算部跃转储磁盘甚至能抛内存足异规模系统串行化代价昂贵再需要应及调用HttpSession.invalidate()清除HttpSession.invalidate()通应用退页面调用
25、要数组声明:public static final
26、HashMap遍历效率讨论
经遇HashMapkeyvalue值遍历操作两种:Map paraMap = new HashMap();
................//第循环
Set appFieldDefIds = paraMap.keySet();
for (String appFieldDefId : appFieldDefIds) {
String[] values = paraMap.get(appFieldDefId);
......
}
//第二循环
for(Entry entry : paraMap.entrySet()){
String appFieldDefId = entry.getKey();
String[] values = entry.getValue();
.......
}
第种实现明显效率第二种实现
析 Set appFieldDefIds = paraMap.keySet(); 先HashMap取keySet
代码:
public Set keySet() {
Set ks = keySet;
return (ks != null ? ks : (keySet = new KeySet()));
}
private class KeySet extends AbstractSet {
public Iterator iterator() {
return newKeyIterator();
}
public int size() {
return size;
}
public boolean contains(Object o) {
return containsKey(o);
}
public boolean remove(Object o) {
return HashMap.this.removeEntryForKey(o) != null;
}
public void clear() {
HashMap.this.clear();
}
}
其实返私类KeySet, AbstractSet继承实现Set接口
再看看for/in循环语
for(declaration : expression_r)
statement
执行阶段翻译各式
for(Iterator #i = (expression_r).iterator(); #i.hashNext();){
declaration = #i.next();
statement
}
第for语句for (String appFieldDefId : appFieldDefIds) 调用HashMap.keySet().iterator() 调用newKeyIterator()
Iterator newKeyIterator() {
return new KeyIterator();
}
private class KeyIterator extends HashIterator {
public K next() {
return nextEntry().getKey();
}
}
所for调用
第二循环for(Entry entry : paraMap.entrySet())使用Iterator内部类
private class EntryIterator extends HashIterator<Map.Entry> {
public Map.Entry next() {
return nextEntry();
}
}
第循环key第二循环HashMapEntry
效率循环面体现第二循环致直接取keyvalue值
第循环再利用HashMapget(Object key)取value值
现看看HashMapget(Object key)
public V get(Object key) {
Object k = maskNull(key);
int hash = hash(k);
int i = indexFor(hash, table.length); //Entry[] table
Entry e = table;
while (true) {
if (e == null)
return null;
if (e.hash == hash && eq(k, e.key))
return e.value;
e = e.next;
}
}
其实再利用Hash值取相应Entry做比较结所使用第循环相于两进入HashMapEntry
第二循环取Entry值直接取keyvalue效率比第循环高其实按照Map概念看应该用第二循环点本keyvalue值keyvalue操作选择
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。