时间计算的代码。

时间计算的代码。,第1张

很多语言有专门函数计算时间差,不过你想自己算也可以。

大致办法是:

1、你可以设定时间差,转换成秒,比如95分钟就是9560

2、当前时间的秒数,从凌晨0点算起,14:25就是146060+2560

3、相减得到的秒数(46200),大于3600算小时,整除得到小时(12),余数除以60,整除得分钟(50),余数为秒数(0)。最后结果是12点50分0秒

注意事项:如果时间差太大,造成步骤3得到是负数,那么这个负数+243600如果大于0就是昨天几点几点再算。当然加上这个243600还小于0,科学的办法是,一旦发现步骤3相减得到的时间差是负数,先绝对值,然后整除243600为0则是昨天的,1是前天,2是大前天,依次类推。。

43 根据需要下面的循环并进行指令调度,直到没有任何延迟。指令的延迟如表44。 LOOP: LD F0,0(R1) MULD F0,F0,F2 LD F4,0(R2) ADDD F0,F0,F4 SD F0,0(R2) DSUBI R1,R1,#8 DSUBI R2,R2,#8 BNEZ R1,LOOP 解:将循环两次,进行指令调度,即可以消除延迟,代码如下: LOOP: LD F0,0(R1) LD F10,-8(R1) MULD F0,F0,F2 MULD F10,F10,F2 LD F4,0(R2) LD F14,-8(R2) ADDD F0,F0,F4 ADDD F10,F10,F14 DSUBI R1,R1,16 SD 0(R2),F0 DSUBI R2,R2,16 BNEZ R1,LOOP SD 8(R2),F10 44 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。 (1) 求程序执行的CPI。 (2) 相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快 解:(1)程序执行的CPI = 没有分支的基本CPI(1) + 分支带来的额外开销 分支带来的额外开销是指在分支指令中,缓冲命中但预测错误带来的开销与缓冲没有命中带来的开销之和。 分支带来的额外开销= 15% (90%命中×10%预测错误×4 + 10%没命中×3)= 0099 所以,程序执行的CPI = 1 + 0099 = 1099 (2)采用固定的2 个时钟周期延迟的分支处理CPI = 1 + 15%×2 = 13 由(1)(2)可知分支目标缓冲方法执行速度快。 45 假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI值为1。假设分支目标缓冲中包含分支目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI值为多少 解:设每条无条件转移指令的延迟为x,则有: 1+5%×x=11 x=2 当分支目标缓冲命中时,无条件转移指令的延迟为0。 所以 程序的CPI = 1 + 2 × 5% ×(1 -90%) =101 46 下面的一段MIPS汇编程序是计算高斯消去法中的关键一步,用于完成下面公式的计算: Y = a  X + Y 其浮点指令延迟如表43所示,整数指令均为1个时钟周期完成,浮点和整数部件均采用流水。整数 *** 作之间以及与其它所有浮点 *** 作之间的延迟为0,转移指令的延迟为0。X中的最后一个元素存放在存储器中的地址为DONE。 FOO: LD F2,0(R1) MUTD F4,F2,F0 LD F6,0(R2) ADDD F6,F4,F6 SD F6,0[R2] DADDIU R1,R1,#8 DADDIU R2,R2,#8 DSUBIU R3,R1,#DONE BNEZ R3, FOO (1) 对于标准的MIPS单流水线,上述循环计算一个Y值需要多少时间其中有多少空转周期 (2) 对于标准的MIPS单流水线,将上述循环顺序4次,不进行任何指令调度,计算一个Y值平均需要多少时间加速比是多少其加速是如何获得的 (3) 对于标准的MIPS单流水线,将上述循环顺序4次,优化和调度指令,使循环处理时间达到最优,计算一个Y值平均需要多少时间加速比是多少 (1) 对于采用如图48前瞻执行机制的MIPS处理器(只有一个整数部件)。当循环第二次执行到 BNEZ R3,FOO 时,写出前面所有指令的状态,包括指令使用的保留站、指令起始节拍、执行节拍和写结果节拍,并写出处理器当前的状态。 (2) 对于2路超标量的MIPS流水线,设有两个指令流出部件,可以流出任意组合的指令,系统中的功能部件数量不受限制。将上述循环4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间加速比是多少 (3) 对于如图413结构的超长指令字MIPS处理器,将上述循环4次,优化和调度指令,使循环处理时间达到最优。计算一个Y值平均需要多少时间加速比是多少 解:(1) LD F2, 0(R1) 1 Stall MUTD F4, F2, F0 2 LD F6, 0(R2) 3 Stall Stall ADDD F6, F4, F6 4 Stall Stall SD F6, 0[R2] 5 DADDIU R1, R1, #8 6 DADDIU R2, R2, #8 7 DSUBIU R3, R1, #DONE 8 BNEZ R3, FOO 9 所以,共有14 个时钟周期,其中有5 个空转周期。 (2)循环顺序4 次,不进行任何指令调度,则指令1~5 及其间的stall 都是必要的,只是指令6~9 只需执行一次,因此,共有 10 × 4 + 4 = 44 个时钟周期,计算出4 个Y 值,所以计算一个Y 值需要11 个时钟周期,加速比为:14/11 = 127 。加速主要是来自减少控制开销,即减少对R1、R2 的整数 *** 作以及比较、分支指令而来的。 (3)循环顺序4 次,优化和调度指令,如下: LD F2, 0(R1) LD F8, 8(R1) LD F14, 16(R1) LD F20, 24(R1) MUTD F4, F2, F0 MUTD F10, F8, F0 MUTD F16, F14, F0 MUTD F22, F20, F0 LD F6, 0(R2) LD F12, 8(R2) LD F18, 16(R2) LD F24, 24(R2) ADDD F6, F4, F6 ADDD F12, F10, F12 ADDD F18, F16, F18 ADDD F24, F22, F24 SD F6, 0[R2] SD F12, 8[R2] SD F18, 16[R2] SD F24, 24[R2] DADDIU R1, R1, #32 DADDIU R2, R2, #32 DSUBIU R3, R1, #DONE BNEZ R3, FOO 共用了24 个时钟周期,则计算一个Y 值平均需要 24/4 = 6 个时钟周期, 加速比:14/6 = 233 (4) 指令 指令执行时钟 流出 执行 写结果 确认 LD F2, 0(R1) 1 2 3 4 MULD F4, F2, F0 2 4 5 6 LD F6, 0(R2) 3 4 6 7 ADDD F6, F4, F6 4 8 9 10 SD F6, 0(R2) 5 11 12 13 DADDIU R1, R1, #8 6 7 8 DADDIU R2, R2, #8 7 8 9 DSUBIU R3,R1,#DONE 8 9 10 BNEZ R3, FOO 9 10 LD F2, 0(R1) 10 11 13 14 MULD F4, F2, F0 11 13 14 15 LD F6, 0(R2) 12 13 15 16 ADDD F6, F4, F6 13 17 18 19 SD F6, 0(R2) 14 20 21 22 DADDIU R1, R1, #8 15 16 17 DADDIU R2, R2, #8 16 17 18 DSUBIU R3,R1,#DONE 17 18 19 BNEZ R3, FOO 18 名称 保留站 Busy Op Vj Vk Qj Qk Dest A Add1 yes ADDD Regs[F4] Regs[F6 ] Add2 no Add3 no Mult1 yes Mult2 no 项号 ROB Busy 指令 状态 目的 Value 1 yes ADDD F6, F4, F6 执行 F6 Regs[F4]+Regs[F6] 2 yes SD F6, 0(R2) 流出 Mem[0+Regs[R2]] #2 字段 浮点寄存器状态 F0 F2 F4 F6 F8 F10 … F30 ROB项编号 1 Busy yes … (5) 整数指令 浮点指令 时钟周期数 LD F2, 0(R1) 1 LD F8, 8(R1) 2 LD F14, 16(R1) MUTD F4, F2, F0 3 LD F20, 24(R1) MUTD F10, F8, F0 4 LD F6, 0(R2) MUTD F16, F14, F0 5 LD F12, 8(R2) MUTD F22, F20, F0 6 LD F18, 16(R2) ADDD F6, F4, F6 7 LD F24, 24(R2) ADDD F12, F10, F12 8 DADDIU R1, R1, #32 ADDD F18, F16, F18 9 SD F6, 0(R2) ADDD F24, F22, F24 10 SD F12, 8(R2) 11 SD F18,16(R2) 12 SD F24, 24(R2) 13 DADDIU R2, R2, #32 14 DSUBIU R3, R1, #DONE 15 BNEZ R3, FOO 16 计算一个Y值需要 16/4 = 4 个时钟周期,加速比 = 14/4 = 35 (6) 访存1 访存2 浮点指令1 浮点指令2 整数指令 时钟 周期 LDF2, 0(R1) LD F8, 8(R1) 1 LDF14, 16(R1) LDF20, 24(R1) LDF6, 0(R2) LDF12, 8(R2) MUTDF4, F2, F0 MUTDF10, F8, F0 3 LDF18, 16(R2) LDF24, 24(R2) MUTDF16, F14, F0 MUTDF22, F20, F0 4 ADDDF6, F4, F6 ADDDF12, F10, F12 5 ADDDF18, F16, F18 ADDDF24, F22, F24 DADDIU R1, R1, #32 6 DADDIU R2, R2, #32 7 DSUBIUR3, R1, #DONE 8 BNEZ R3, FOO 9 SDF6, -32(R2) SDF12, -24(R2) 10 SDF18,-16(R2) SDF24, -8(R2) 11 计算一个Y值需要 11/4 个时钟周期,加速比 = 14/(11/4) = 56/11

代码如下:

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

public class DateTestUtil {

public static void main(String[] args) throws Exception {

SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");

String str="20110823";

Date dt=sdfparse(str);

Calendar rightNow = CalendargetInstance();

rightNowsetTime(dt);

rightNowadd(CalendarYEAR,-1);//日期减1年

rightNowadd(CalendarMONTH,3);//日期加3个月

rightNowadd(CalendarDAY_OF_YEAR,10);//日期加10天

Date dt1=rightNowgetTime();

String reStr = sdfformat(dt1);

Systemoutprintln(reStr);

}

}

注:在Calendar对象的add方法中,第二个参数为正数表示“加”,负数表示“减”。

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

主要组成

Java由四方面组成:

●Java编程语言,即语法。

●Java文件格式,即各种文件夹、文件的后缀。

●Java虚拟机(JVM),即处理class文件的解释器。

●Java应用程序接口(Java API)。

体系

Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版),

JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),

Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。

在jsp中写 sql 语句 一般在servlet中写,吧jsp中的值传入servlet中,用一个string值得到 String x=requestgetParameter("需要得到的值"); 然后再sql语句 就搞定啦 获取系统时间: Date date=new Date();

SimpleDateFormat simleDateFormat=new SimpleDateFormat("yyy-MM-dd HH:mm:ss");

String ret=simleDateFormatformat(date);//系统时间

代码开始时获得系统时间

var date1=new Date();

代码结束时获得系统时间

var date2=new Date();

将时间转成毫秒然后得到两者毫秒差

var haomiao=date2getTime()-date1getTime();

然后你将毫秒转成你需要的时间就行。比如多少秒haomiao/1000

多少分 haomiao/(100060)

以此类推

以上就是关于时间计算的代码。全部的内容,包括:时间计算的代码。、如何进行指令调度使其执行延迟时间最短进行指令调度所获得的加速比是多少、java 获取本机当前时间并对小时任意加减等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9553430.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存