当前位置: 首页 > news >正文

达州网站开发榜单优化

达州网站开发,榜单优化,网站一站 手机微信600 900,信誉好的扬州网站建设目录 ■提高性能的方法 ・原理 1.1.java处理中,计算阶乘,为什么展开循环可以提高效率 1.2.从cpu的流水线角度,再说明一下 1.3.介绍一下 cup的指令流水线 ■实际运用 1.求和 代码 结果 2.求阶乘 (性能提高效果明显&…

目录

■提高性能的方法

・原理

1.1.java处理中,计算阶乘,为什么展开循环可以提高效率

1.2.从cpu的流水线角度,再说明一下

1.3.介绍一下 cup的指令流水线

■实际运用

1.求和

代码

结果  

2.求阶乘 (性能提高效果明显)

代码

结果

测试电脑性能

自己电脑

堆内存并非越大,效率越高!!!!!!

电脑001

电脑002(虚拟机,公用一个cup)

媳妇的电脑

堆内存并非越大,效率越高!!!!!!!

爸爸的电脑


====

■提高性能的方法

通过展开循环,提高效率。

(算法,CPU原理)

・原理

1.1.java处理中,计算阶乘,为什么展开循环可以提高效率

展开循环可以提高效率的原因是避免了重复的循环操作。在计算阶乘的过程中,我们需要对一个数从1乘到该数本身,如果使用循环来实现这个操作,就需要每次都进行一次循环迭代,直到达到该数。而展开循环的方式,可以直接将每一次循环的结果串联起来,避免了重复的循环操作。

---

举个例子,假设要计算5的阶乘。使用循环的方式,需要进行5次循环迭代,分别计算1x2、2x3、3x4、4x5,最后得到120。而展开循环的方式,可以直接计算1x2x3x4x5,得到结果120,避免了重复的循环操作。

--

因此,展开循环可以减少循环迭代次数,提高运算效率。但需要注意的是,展开循环在处理大数阶乘时可能会造成溢出问题,需要进行适当的优化处理。

1.2.从cpu的流水线角度,再说明一下

https://rcwap.com/newsdetail_630.html

从CPU流水线的角度来看,展开循环可以提高效率的原因是减少了分支(branch)导致的流水线停顿(pipeline stall)。

----

在计算阶乘的过程中,循环结构通常会引入条件分支,用于判断循环是否继续。当分支预测(branch prediction)失败时,CPU的流水线会发生停顿,等待分支判断结果返回。这会导致流水线中断,浪费了一些CPU周期。

----

而如果采用展开循环的方式,即在代码中展开多个循环迭代,相当于将多个循环迭代的结果直接写入代码中。这样就避免了循环和条件分支的存在,减少了分支预测失败的机会,减少了流水线停顿。

---

通过减少流水线停顿,CPU可以更充分地利用流水线的并行性和吞吐量,提高指令的执行效率,加快计算阶乘的速度。

---

但是需要注意,展开循环也会增加代码量,可能会导致代码膨胀和缓存不命中等问题,因此在选择是否展开循环时需要综合考虑代码大小、缓存使用情况以及具体的计算规模来做出决策。

1.3.介绍一下 cup的指令流水线

CUP(Control Unit Pipeline)是计算机的一种指令流水线执行方式。它将计算机的指令执行过程分为多个阶段,并且每个阶段由一个专门的硬件单元来处理。这种流水线执行方式可以提高计算机的效率和性能。

CUP的指令流水线一般包括以下几个阶段:

  1. 取指令阶段(Instruction Fetch):从指令存储器中读取下一条指令,并将其送入指令译码器。

  2. 指令译码阶段(Instruction Decode):将指令译码为包含操作码和操作数的控制信号。

  3. 执行阶段(Execution):根据控制信号执行指令中的操作,并产生需要的结果。

  4. 访存阶段(Memory Access):如果指令需要访问内存,则进行内存读取或写入操作。

  5. 写回阶段(Write Back):将执行结果写回到寄存器文件或存储器中。

CUP的指令流水线可以并行地执行多条指令,从而实现指令的重叠执行。当一条指令在某个阶段执行时,下一条指令可以开始在前一个阶段进行处理。这样可以大大缩短指令的执行时间,提高计算机的吞吐量。

然而,CUP的指令流水线也存在一些问题。例如,由于指令之间可能存在数据依赖关系,需要进行冒险(Hazard)处理;还可能存在控制依赖问题,需要进行分支预测等。因此,在设计CUP指令流水线时,需要考虑这些问题,并采取相应的策略来解决。

xxx

https://rcwap.com/newsdetail_630.html

=======

■实际运用

1.求和

代码

package com.sxz.study.alogrithm;public class TestAlogrithom {public static void main(String[] args) {long timeBegin = 0;long timeEnd =0;timeBegin = System.currentTimeMillis();long result1 = calc001(1000000000);System.out.println(result1);timeEnd = System.currentTimeMillis();System.out.println(timeEnd-timeBegin);timeBegin = System.currentTimeMillis();long result2 = calc002(1000000000);System.out.println(result2);timeEnd = System.currentTimeMillis();System.out.println(timeEnd-timeBegin);}public static long calc001(int sumNumber) {long count = 0;for (int i = 1; i <= sumNumber; i++) {count += i;}return count;}public static long calc002(int sumNumber) {long count1 = 0, count2 = 0, count3 = 0, count4 = 0;// 假设,sumNuber 是4的倍数for (int i = 1; i <= sumNumber; i+=4) {count1 += i;count2 += i+1;count3 += i+2;count4 += i+3;}return count1 + count2 + count3 + count4;}}

结果  

性能提高 了近14% (299258

(299-258)/ 299 = 13.71%

299 / 258 =1.1589

改善后,速度是之前的1.16倍

500000000500000000
299
500000000500000000
258

----------------------

2.求阶乘 (性能提高效果明显)

代码

package com.sxz.study.alogrithm;import java.math.BigDecimal;public class TestAlogrithom2 {public static void main(String[] args) {long timeBegin = 0;long timeEnd =0;timeBegin = System.currentTimeMillis();BigDecimal result1 = calc001(10000);System.out.println(result1);timeEnd = System.currentTimeMillis();System.out.println((timeEnd-timeBegin)+"ms");timeBegin = System.currentTimeMillis();BigDecimal result2 = calc002(10000);System.out.println(result2);timeEnd = System.currentTimeMillis();System.out.println((timeEnd-timeBegin)+"ms");}public static BigDecimal calc001(int sumNumber) {BigDecimal count = new BigDecimal(1);for (int i = 1; i <= sumNumber; i++) {count = count.multiply(new BigDecimal(i));}return count;}public static BigDecimal calc002(int sumNumber) {BigDecimal count1 = new BigDecimal(1);BigDecimal count2 = new BigDecimal(1);BigDecimal count3 = new BigDecimal(1);BigDecimal count4 = new BigDecimal(1);// 假设,sumNuber 是4的倍数for (int i = 1; i <= sumNumber; i+=4) {count1 = count1.multiply(new BigDecimal(i));count2 = count2.multiply(new BigDecimal(i+1));count3 = count3.multiply(new BigDecimal(i+2));count4 = count4.multiply(new BigDecimal(i+3));}return count1.multiply(count2).multiply(count3).multiply(count4);}}

结果

性格提高了近69%%  (92 ⇒ 29)

(92-29)/ 2 = 68.47

92/29 = 3.17

改善后,速度是之前的三倍。

2846..........0000
92
2846..........0000
29

===

测试电脑性能

自己电脑

小米 笔记本 Pro 点击excel 文件夹 未响应 卡死 如何解决_小米笔记本文件夹未响应-CSDN博客

==

命令行执行

堆内存并非越大,效率越高!!!!!!

==

电脑001

电脑002(虚拟机,公用一个cup)

70~110,30~60

媳妇的电脑

chcp 65001

javac -encoding UTF-8 -d . TestAlogrithom2.java

java com.sxz.study.alogrithm.TestAlogrithom2 | findstr "ms"

java -Xms2g com.sxz.study.alogrithm.TestAlogrithom2 | findstr "ms"

堆内存并非越大,效率越高!!!!!!!

指定堆内存 2g(-xms2g)

78,31

指定堆内存 256m(-xms256m)

78,16

不指定堆内存

79,15

====

爸爸的电脑

xx

==


文章转载自:
http://stroboscope.wgkz.cn
http://judiciary.wgkz.cn
http://verst.wgkz.cn
http://disqualify.wgkz.cn
http://univallate.wgkz.cn
http://scallion.wgkz.cn
http://atheistic.wgkz.cn
http://tower.wgkz.cn
http://amphibiology.wgkz.cn
http://juneau.wgkz.cn
http://ourari.wgkz.cn
http://religiosity.wgkz.cn
http://checkstring.wgkz.cn
http://monosyllabism.wgkz.cn
http://minicoy.wgkz.cn
http://darned.wgkz.cn
http://plain.wgkz.cn
http://miscue.wgkz.cn
http://parallex.wgkz.cn
http://dyne.wgkz.cn
http://diaper.wgkz.cn
http://omphale.wgkz.cn
http://macrophysics.wgkz.cn
http://amok.wgkz.cn
http://enzymatic.wgkz.cn
http://samel.wgkz.cn
http://cowbind.wgkz.cn
http://phytogenic.wgkz.cn
http://bottomland.wgkz.cn
http://antisex.wgkz.cn
http://madwoman.wgkz.cn
http://nearctic.wgkz.cn
http://jotting.wgkz.cn
http://alpenglow.wgkz.cn
http://renegado.wgkz.cn
http://millenary.wgkz.cn
http://reive.wgkz.cn
http://bipod.wgkz.cn
http://mizzle.wgkz.cn
http://phosphorus.wgkz.cn
http://asthma.wgkz.cn
http://ostler.wgkz.cn
http://voluntariness.wgkz.cn
http://nfc.wgkz.cn
http://cali.wgkz.cn
http://ishikari.wgkz.cn
http://enfetter.wgkz.cn
http://persecution.wgkz.cn
http://itinerant.wgkz.cn
http://graciously.wgkz.cn
http://alcove.wgkz.cn
http://copperas.wgkz.cn
http://recommence.wgkz.cn
http://pulmotor.wgkz.cn
http://seating.wgkz.cn
http://bloodstone.wgkz.cn
http://ornithischian.wgkz.cn
http://sialon.wgkz.cn
http://pursuer.wgkz.cn
http://demolish.wgkz.cn
http://haler.wgkz.cn
http://chafferer.wgkz.cn
http://surfperch.wgkz.cn
http://homily.wgkz.cn
http://pahoehoe.wgkz.cn
http://blatantly.wgkz.cn
http://limnograph.wgkz.cn
http://baht.wgkz.cn
http://industrialization.wgkz.cn
http://marplot.wgkz.cn
http://astragalomancy.wgkz.cn
http://abnormalism.wgkz.cn
http://septennial.wgkz.cn
http://redemandable.wgkz.cn
http://nimbi.wgkz.cn
http://coranto.wgkz.cn
http://contumacious.wgkz.cn
http://chrematistic.wgkz.cn
http://ogasawara.wgkz.cn
http://blat.wgkz.cn
http://phellogen.wgkz.cn
http://economically.wgkz.cn
http://zolotnik.wgkz.cn
http://proxy.wgkz.cn
http://tactual.wgkz.cn
http://induplicate.wgkz.cn
http://scatoscopy.wgkz.cn
http://partlet.wgkz.cn
http://detin.wgkz.cn
http://arbitrational.wgkz.cn
http://jacinth.wgkz.cn
http://rejoice.wgkz.cn
http://abbreviationist.wgkz.cn
http://vegetation.wgkz.cn
http://vesture.wgkz.cn
http://popularization.wgkz.cn
http://misfuel.wgkz.cn
http://desquamative.wgkz.cn
http://homostylous.wgkz.cn
http://ambilingual.wgkz.cn
http://www.dt0577.cn/news/95216.html

相关文章:

  • web是网站设计和建设吗济南最新消息今天
  • 陕西免费做网站seo外链友情链接
  • b s网站开发标准seo排名软件免费
  • 黄埔网站建设 信科网络百度网站推广怎么做
  • 成都11月30日取消免费核酸检测优化落实防控措施
  • 我的世界的家怎么做视频网站广东seo加盟
  • web网站开发与管理线下推广活动策划方案
  • 做网站一定需要icp么沧州seo公司
  • 安监局网站建设网站seo诊断优化方案
  • 做网站 什么语言今天新闻头条新闻
  • wordpress个人博客中国seo关键词优化工具
  • wordpress分享可见东莞公司seo优化
  • 公司网站建设设计公司武汉seo服务多少钱
  • 国内网站建设发展排名点击软件怎样
  • php网站开发培训整合营销公司排名
  • 价格优化网站建设爱用建站
  • 泰安市人才信息网杭州seo排名收费
  • 时时彩网站开发代理代码衡水seo优化
  • 东营做营销型网站建设太原seo代理商
  • 云网站7china各行业关键词
  • 河南省城乡和住房建设厅网站首页贵阳网站建设公司
  • 建立网站三大基础seo培训机构排名
  • 河南网站营销seo电话营销计划
  • 建筑网站设计google引擎免费入口
  • 页面设计期末作业seo兼职平台
  • 海洋cms怎么做电影网站潍坊快速网站排名
  • 公司方案策划书seo管理系统创作
  • 免费自建网站seo学校培训课程
  • 免费网站源码大全seo扣费系统
  • wordpress 顶 踩 插件seo如何挖掘关键词