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

网站诊断工具像做游戏一样编程的网站

网站诊断工具,像做游戏一样编程的网站,天津网架公司,金蝶软件官网下载这是有关使用Java编程语言时的拟议实践的系列文章的第一篇。 所有讨论的主题均基于用例#xff0c;这些用例来自于电信行业的关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前#xff0c;强烈建议您参考相关的Java API文档以获取详细信息和代码示例。 所有测试… 这是有关使用Java编程语言时的拟议实践的系列文章的第一篇。 所有讨论的主题均基于用例这些用例来自于电信行业的关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前强烈建议您参考相关的Java API文档以获取详细信息和代码示例。 所有测试均针对具有以下特征的Sony Vaio进行 系统openSUSE 11.1x86_64 处理器CPUIntelRCoreTM2 Duo CPU T6670 2.20GHz 处理器速度1,200.00 MHz 总内存RAM2.8 GB JavaOpenJDK 1.6.0_0 64位 应用以下测试配置 并发工作者线程200 每个工作人员重复测试的次数1000 整体测试次数100 在多线程环境中使用DateFormat 在多线程环境中使用DateFormat可能很棘手。 Java API文档明确指出 “ 日期格式不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问一种格式则必须在外部进行同步。 ” 典型的情况是使用预定义格式将日期转换为字符串表示形式反之亦然。 为每次转换创建新的DateFormat实例效率很低。 您应该记住静态工厂方法“ getDateInstance..”在使用时也会创建新的DateFormat实例。 大多数开发人员所做的就是使用DateFormat实现类例如SimpleDateFormat 构造DateFormat实例并将其值分配给类变量。 类范围的变量用于其所有日期解析和格式设置需求。 前面提到的方法虽然非常有效但是由于DateFormat类上缺少同步因此当多个线程访问类变量的相同实例时会引起问题。 解析创建Date对象时抛出的典型异常是 java.lang.NumberFormatException java.lang.ArrayIndexOutOfBoundsException 执行格式化时您还应该遇到格式错误的“ 日期到字符串”表示形式。 为了正确处理上述问题弄清多线程环境的体系结构至关重要。 Java虚拟机允许应用程序具有多个并发运行的执行线程。 通常在多线程环境JVM内的容器或JVM本身中应执行线程池。 工作线程应在启动时构造并初始化以用于执行程序。 例如一个Web容器构造了一个工作线程池来服务所有传入的流量。 线程池是处理系统资源的最有效方法主要是因为线程创建和初始化对于Java虚拟机来说是一项非常耗资源的任务。 不过只需为要同时执行的每段代码创建一个新的执行线程 即可实现应用程序并行性。 关于类范围的DateFormat实例 如果你已经明确了NO 线程池将在您的环境中使用那么只有新的主题实例同时访问你的DateFormat实例。 在这种情况下建议从外部同步该DateFormat实例 如果使用线程池则可以同时访问DateFormat实例的线程实例数量有限。 因此建议使用ThreadLocal方法为每个线程创建单独的DateFormat实例。 以下是“ getDateInstance..”“同步”和ThreadLocal方法的示例 package com.javacodegeeks.test;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class ConcurrentDateFormatAccess {public Date convertStringToDate(String dateString) throws ParseException {return SimpleDateFormat.getDateInstance(DateFormat.MEDIUM).parse(dateString);}}package com.javacodegeeks.test;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class ConcurrentDateFormatAccess {private DateFormat df new SimpleDateFormat(yyyy MM dd);public Date convertStringToDate(String dateString) throws ParseException {Date result;synchronized(df) {result df.parse(dateString);}return result;}} 这里要注意的事情 每个执行“ convertStringToDate”操作的线程都试图在获取对DateFormat类变量instance的引用之前获取DateFormat对象的监视器锁定。 如果另一个线程持有该锁则当前线程将等待直到释放该锁。 这样一次只有一个线程正在访问DateFormat实例。 package com.javacodegeeks.test;import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class ConcurrentDateFormatAccess {private ThreadLocalDateFormat df new ThreadLocalDateFormat () {Overridepublic DateFormat get() {return super.get();}Overrideprotected DateFormat initialValue() {return new SimpleDateFormat(yyyy MM dd);}Overridepublic void remove() {super.remove();}Overridepublic void set(DateFormat value) {super.set(value);}};public Date convertStringToDate(String dateString) throws ParseException {return df.get().parse(dateString);}} 这里要注意的事情 每个执行“ convertStringToDate”操作的线程都将调用“ df.get”操作以初始化或检索其本地范围内的DateFormat实例的已初始化引用。 下面我们给出上述三种方法之间的性能比较表注意我们已经测试了DateFormat实用工具类的解析功能。根据特定的日期格式我们将日期的String表示形式转换为等效的Date对象。 横轴表示测试运行的次数纵轴表示每次测试运行的每秒平均事务数TPS。 因此较高的值更好。 如您所见通过使用线程池和ThreadLocal方法与“同步”方法和“ getDateInstance..”方法相比您可以获得更高的性能。 最后我要指出的是使用不带线程池的ThreadLocal方法等同于使用“ getDateInstance..”方法因为每个新线程都必须在使用之前初始化其本地DateFormat实例因此需要一个新的DateFormat实例将在每次执行时创建。 编码愉快 贾斯汀 相关文章 Java最佳实践–高性能序列化 Java最佳实践– Vector vs ArrayList vs HashSet Java最佳实践–字符串性能和精确字符串匹配 Java最佳实践–队列之战和链接的ConcurrentHashMap Java最佳实践– Char到Byte和Byte到Char的转换 翻译自: https://www.javacodegeeks.com/2010/07/java-best-practices-dateformat-in.html
http://www.pierceye.com/news/466021/

相关文章:

  • 最新购物网站建设框架wordpress 登录后台乱码
  • 音频网站开发做外贸网站需要营业执照
  • 企业网站搭建项目概述范文wordpress更改链接地址
  • 免费网站在线观看人数在哪直播建设工业网站首页
  • 权威的南昌网站设计wordpress游客评论游客
  • 乡镇府建设网站什么是外链
  • 营销型网站设计流程电子商务网站建设软件
  • 做个人网站的步骤wordpress 添加新页面
  • 公司建网站流程网站布局选择
  • 云南效果好的网站优化微信如何做有趣的短视频网站
  • wordpress个人网站后台登陆dedecms仿站
  • 网站没被收录什么原因上海哪家做网站
  • 电子商务网站建设含代码项目外包是什么意思
  • 此网站正在建设中页面重庆网上商城网站建设公司
  • 保定建设公司网站新产品上市的营销策划方案
  • 网站建设课程报告论文网络设计专业有前途吗
  • 苏州哪个公司做门户网站wordpress显示评论者地理位置 浏览器
  • 福州网站设计十年乐云seo推广网上国网有什么好处
  • 豪华网站建设wordpress推广提成
  • 网站优化外包价格搜索引擎费用
  • 网站建设基本范例sqlite开发网站
  • 网站建设顾问站建开发外包公司
  • 建立网站花钱吗wordpress表结构写入不全
  • 绿色家园网站怎么做导出wordpress文章
  • 合肥有什么好的网站建设公司网站建设的售后服务流程
  • 做网站烧钱吗济南免费建站
  • ps个人主页网页设计模板汕头关键词优化服务
  • 网站建设功能图网站开发新技术探索
  • 做自行车网站应该注意什么个人介绍网页设计模板
  • 邢台网站建设免费做网站排名上海开发app