linux jxl 严重消耗内存,造成整个系统卡死状态

YH555 2013-07-08 02:13:51
有了解或遇到过的童鞋请指教哈。。。

jxl关于内存消耗的一些问题
现项目中有用jxl做数据导入操作,但是导入时发现整个系统不稳定,只要进行导入操作时就会出现整个系统运行造成堵塞卡死现象,这个现在维持在导入完成之后才恢复正常!
后通过打印日志,发现两个地方验证耗时,
1、workbook = Workbook.getWorkbook(new FileInputStream(path)); 就这一句代码,正式服务器会耗时5~8秒不等;
2、workbook.close(); 关闭 workbook用时:9~12秒不等;

正式服务器是linux, 但是在测试服务器测试(同正式服务器环境一致,就防火墙不一样)并未发现此问题, 本地windows环境也未发现此问题,这两个地方用时都大约在1秒左右!
为什么正式服务器会耗时这么严重?? 导入时通过内存监听查看内存消耗一下猛涨很多。。。

有了解或遇到过的童鞋请指教哈。。。 估计大概跟什么有影响, 在这先谢谢了!

部分代码:
long getd = System.currentTimeMillis();
workbook = Workbook.getWorkbook(new FileInputStream(path));// 耗时严重 5~8秒不等;
Sheet sheet = workbook.getSheet(0);
int rows=sheet.getRows();
for (int i = 1; i < rows; i++) {
//读取exce保存至 集合中

}

......

if(workbook!=null){
workbook.close();//关闭操作, 耗时严重 9~12秒不等;
workbook=null;
}

...全文
340 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
YH555 2013-07-24
  • 打赏
  • 举报
回复
感谢大家, 最后换成poi组件问题就解决了, 具体原因未找到, 可能是系统环境某些配置有关。。
YH555 2013-07-11
  • 打赏
  • 举报
回复
自己顶下!!!
okafor2011 2013-07-11
  • 打赏
  • 举报
回复
可能文件过大,使用POI使用流方式读取数据,很快 10万行无压力(Excel 2007)
无聊找乐 2013-07-11
  • 打赏
  • 举报
回复
正式环境数据量更大?
YH555 2013-07-09
  • 打赏
  • 举报
回复
http监听 在导入时很多会超时报错! 服务器我们有局域网IP访问,所有操作都是局域网ip进行,不会涉及网络传输与带宽问题。
调皮的芋头 2013-07-09
  • 打赏
  • 举报
回复
你可以检查 测试服务器 服务器测试的文件(excel)是否是本地文件,正式服务器 导入的文件是否在本地(还是网络文件)?对于传输而言,本地肯定比网络传输要快,因为本地传输无任何限制,而网络传输与带宽网速有关
  • 打赏
  • 举报
回复
耗时而已?不报错?
YH555 2013-07-08
  • 打赏
  • 举报
回复
是耗时, 但为什么服务器跟本地会有这么大区别, 服务器配置比本地好N倍啊!
失落夏天 2013-07-08
  • 打赏
  • 举报
回复
别的不敢多说 只是觉得读excel表其实是蛮耗内存的
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧