Java Web Start 导致执行缓慢

2024-01-05

我有一个使用 Java Web Start 部署的应用程序。当我进行单元测试时,我注意到一个小问题:每当我的应用程序使用 Java Web Start 运行时,特定操作需要很长时间才能执行。然而,在本地运行时,速度相当快。

我所说的特定操作是读取一个大(5k 行)Excel 文件来解析它。这是代码行:

Workbook wb = WorkbookFactory.create(new FileInputStream(new File(inputFile.getText())));

为了解决这个问题,我添加了一种记录时间的方法:

long time1 = System.currentTimeMillis();
Workbook wb = WorkbookFactory.create(new FileInputStream(new File(inputFile.getText())));
long time2 = System.currentTimeMillis();
long diff = time2 - time1;
double seconds = (double)diff / (double)1000;
DecimalFormat df = new DecimalFormat("#,##0.00");
System.out.println("Elapsed Time: " + df.format(seconds) + " seconds.");

这是输出:

(local)

Elapsed Time: 4.83 seconds.

(Java 网络启动)

Elapsed Time: 35.52 seconds.

但是,随后立即运行(在 Java Web Start 上)会产生以下结果:

Elapsed Time: 1.61 seconds.

我怀疑这与 POI 库有关(特别是读取 POI 所需的库的大小,更具体地说,13 MBooxml-schemas-1.0.jar库文件)。所以,我的问题是:假设是库大小,有什么办法可以防止这种情况发生?我通过控制面板打开了库缓存,那么为什么它似乎需要缓存库?一旦加载,速度很快。但这需要永远的第一次。

Here's an image of the control panel showing that I am allowing it to store the libraries: enter image description here

以前有人见过这种行为吗?没有 SSCCE,因为...那么,如何发布包含 Java Web Start 问题的 SSCCE?


鉴于任何剖析 https://stackoverflow.com/q/2064427/230513结果,您应该严格审查<resources/> http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/syntax.html#resources中指定的属性<j2se/>你的元素.jnlp并将它们与您的开发环境中的进行比较。特别要注意那些影响性能的因素,例如堆大小和 VM 类型:

<resources>
    <j2se
        version="1.6+"
        initial-heap-size="128m"
        max-heap-size="256m"
        java-vm-args="-server"/>
    …
</resources>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Web Start 导致执行缓慢 的相关文章

  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • Spring @Validated 在服务层

    Hej 我想使用 Validated group Foo class 在执行方法之前验证参数的注释 如下所示 public void doFoo Foo Validated groups Foo class foo 当我将此方法放入 Spr
  • 探索java图像处理的好资源[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是图像处理领域的新手 请推荐一些好的资源 书籍和网络链接 来学习 Java 中的图像处理 最适合隐写术分析 适合初学者和高级水平 我看过
  • 为什么Java中的文件名与公共类名相同? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在Java中 文件名应该与文件名相同public class包含在该文件中 为什么这是一个限制 它有什么目的 Java 有一个有趣的方法 如果给
  • Apache Commons VFS - 无法解析文件

    VFS 方法无法处理此 URI jboss server temp dir local outgoing配置在jboss beans xml这是决心 C Download jboss eap 5 1 1 server default tmp
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 外部实体更改后索引不更新

    我目前正在开发一个项目 使用 JPA 2 1 保存数据并使用 hibernate search 4 5 0 final 搜索实体 映射类和索引后 搜索工作正常 但是 当我更改值时描述B 类从 someStr 到 anotherStr 数据库
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 为本地@ExceptionHandler编写JUnit测试

    我有以下控制器 class Controller ResponseStatus HttpStatus OK RequestMapping value verifyCert method RequestMethod GET public vo
  • 如何构建和使用 TimeSeriesCollections

    我想在图表的 X 轴上显示一些日期 并且here https stackoverflow com questions 5118684 jfreechart histogram with dates据说我必须使用 TimeSeriesColl
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • 如何从 Trie 中检索给定长度的随机单词

    我有一个简单的 Trie 用来存储大约 80k 长度为 2 15 的单词 它非常适合检查字符串是否是单词 但是 现在我需要一种获取给定长度的随机单词的方法 换句话说 我需要 getRandomWord 5 来返回 5 个字母的单词 所有 5
  • Java 常量枚举[重复]

    这个问题在这里已经有答案了 可能的重复 理解 Java 中的枚举 https stackoverflow com questions 1419835 understanding enums in java 为什么我们应该使用枚举而不是 Ja
  • 如何加载图像文件到ImageView?

    我试图在从文件选择器中选择图像文件后立即显示该图像文件 文件选择器仅限于 png 和 jpg 文件 所选文件存储在文件类型的变量中 为此 我设置了一个 ImageView 我希望用这个新文件设置图像 唯一的问题是它的类型是文件而不是图像 如
  • 如何在启用嵌入时间戳和 LTV 的情况下签署 PDF?

    我正在尝试签署启用了时间戳和 LTV 的 pdf 以便它在 Adob e Reader 中显示如下 在英语中 这意味着 签名包含嵌入的时间戳 和 签名启用了 LTV 这是我正在使用的代码 PrivateKey pk get pk from
  • 将 PropertyPlaceholderConfigurer 中的所有属性注入到 bean 中

    我有一个PropertyPlaceholderConfigurer加载多个属性文件 我想通过配置 XML 将合并的属性映射注入到 Spring Bean 中 我可以这样做以及如何做 您只需创建一个属性 bean 并将其用于您的Propert
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 一个类中有多个具有相同参数类型的方法

    我知道 至少已经有了关于这个主题的一个问题 https stackoverflow com questions 5561436 can two java methods have same name with different retur
  • 在java中创建一个XML树并将其转换为json对象

    我尝试创建也能够转换为 json 的树 但对于只有一个xpath 当我尝试实现多个 xpath 时 我无法获得所需的输出 这里我分享一下我的实现 private static Document addElemtbypath List

随机推荐

  • C++:返回 C 字符串的最快方法

    我有一个简单的函数 它接受一个字符并返回一个字符串 在 C 中它看起来像 char get string char c switch c case A return some string Case B return some other
  • 捕获AsyncTask的异常。需要思考

    我想在 doInBackground 中捕获线程的异常并在 onPostExcecute 中打印错误消息 问题是我在 onPostExecute 中没有 Throwable 对象 如何在非 UI 线程中捕获异常 and 在 UI 线程中打印
  • 检测用户是否有打印能力?

    客户要求在其网站上添加打印按钮 并希望对没有打印能力的用户 例如 用户 隐藏该按钮 大多数移动设备 有没有办法通过JavaScript来检测客户端是否具有打印功能 该要求是有缺陷的 因为大多数用户代理可以 打印 并且 UA 是否可以打印的知
  • 查找对象数组中所有匹配的元素[重复]

    这个问题在这里已经有答案了 我有一个对象数组 我正在像这样的数组中搜索 let arr name string 1 arrayWithvalue 1 2 other that name string 2 arrayWithvalue 2 o
  • 在 gnuplot 中绘制两个轴

    是否可以在 gnuplot 中绘制两条曲线 其中有两个相应的轴 每个轴都有不同的比例 例如 y x 2 and y x 4在同一张图中 当用相同的比例绘制时 它们的变化足以让人 不舒服 您可以自动处理轴 而无需自己缩放它们并保持自动缩放 s
  • 如何使用 Quanteda 和 kwic 进行模糊模式匹配?

    我有医生写的文本 我希望能够突出显示上下文中的特定单词 我在文本中搜索的单词之前 5 个单词和之后 5 个单词 假设我想搜索 自杀 这个词 然后我将使用 quanteda 包中的 kwic 函数 kwic 数据集 模式 自杀 窗口 5 到目
  • 如何在 GitHub 上隐藏 MySQL 连接字符串 - 用户名和密码 (Java)

    我一直在努力寻找解决方案来解决我目前面临的困境 因此 我正在做一个小项目 创建一个简单的 POS 系统 我使用 Oracle MySQL 数据库来存储用户密码 商品名称 价格等信息 我使用 Amazon AWS 作为主机 当我在代码中连接到
  • 为什么 webkit 行夹紧在 Firefox 中不起作用?

    我使用这个 webkit 线夹 它在 Chrome 中有效 但在 Firefox 中无效 以下是代码 overflow hidden text overflow ellipsis display webkit box webkit box
  • 图像中的颜色匹配

    我有两张图像 切片 由两个相机传感器拍摄以完成一张图像 然而 由于传感器性能的一些差异 它们的颜色 色调有所不同 我需要将它们匹配以制作一张统一的图像 我用的是HistogramMatcher斐济包含的功能 图 J 解释here https
  • Firebase云函数中的空传播错误

    我正在寻找部署一个云功能 我可以从数据库中读取数据 我想验证对象深处是否存在字段 因此我尝试使用空传播运算符 预期行为 如果深层密钥不存在 或路径上的任何内容 则返回以下表达式不明确的 示例代码 if doc data key subKey
  • UITableViewCell 从底部开始时 UITableViewAutomaticDimension 问题

    我有一个有趣的问题 我有一个非常基本的表格视图 其中包含一堆不同高度的单元格 它使用 iOS 8 UITableViewAutomaticDimension 和自动布局约束 interface ViewController
  • 使用 msbuildworkspace 打开解决方案会出现没有详细信息的诊断错误

    我正在尝试使用 Roslyn 和 MSBuildWorkspace 来分析解决方案 该解决方案是一个新的解决方案 其中有 2 个类库项目 一个引用另一个 它们是在 Visual Studio 2017 Net 4 6 2 中创建的 当我打开
  • web.config 标头大小限制是否会覆盖注册表中的 http.sys 限制?

    我有一个 ASP Net 4 0 应用程序 在 Windows 2003 上的 IIS7 5 上使用 Windows 集成身份验证 一些用户报告了此消息的错误 错误请求 请求太长 HTTP 错误 400 请求标头的大小太长 其他人成功加载页
  • Win32api 没有在 python 中使用 GetCursorPos() 给出正确的坐标

    当使用 pywin 中的 win32api 时 我得到的光标位置值不正确 我的屏幕分辨率是 1920x1080 但是当我使用 GetCursorPos 时 左上角有 0 0 右下角有 1535 863 我使用的代码如下 import win
  • BigQuery 中的行号?

    有没有办法获取 BigQuery 中每条记录的行号 从规范来看 我没有看到任何相关内容 有一个 NTH 函数 但适用于重复字段 在某些情况下 BigQuery 中不需要行号 例如使用 TOP 或 LIMIT 函数 但是 我需要它来模拟一些分
  • Android状态栏图标颜色

    根据http developer android com guide practices ui guidelines icon design status bar html http developer android com guide
  • java.lang.IllegalStateException:指定的子级已经有父级。您必须首先对孩子的父母调用removeView()

    这是我的代码 Frame gameController test setContentView Frame world getScreen Frame world setRunning true 在第二行我收到以下错误 ERROR Andr
  • ZEND FW:连接来自不同数据库的两个表

    我想连接同一服务器上不同数据库中的两个表 有人可以告诉我如何在 Zend Framework Db 适配器中执行此操作吗 see 使用 Zend Framework 连接到两个不同的数据库 https stackoverflow com q
  • XML 和 API 中的错误消息以及 C# 代码

    基于之前的以下代码support https stackoverflow com questions 30683402 c sharp code to retrieve xml data using WebClient client new
  • Java Web Start 导致执行缓慢

    我有一个使用 Java Web Start 部署的应用程序 当我进行单元测试时 我注意到一个小问题 每当我的应用程序使用 Java Web Start 运行时 特定操作需要很长时间才能执行 然而 在本地运行时 速度相当快 我所说的特定操作是