-
java+flex 企业应用 性能问题10
对您的回复,不胜感激.....
在公司项目运用中。 利用了flex和java通信的消息机制。 tomcat通过接口接收消息,收到之后。通过消息,从tomcat后台,推给前台的flex。/** * 告警同步消息 * @author * @date 2010-4-14 */ private void alarmSynMsg(String entityName){ MessageBroker msgBroker = MessageBroker.getMessageBroker(null); AsyncMessage msg = new AsyncMessage(); msg.setDestination("tick-data-feed"); msg.setHeader("DSSubtopic", entityName); msg.setClientId(entityName); msg.setMessageId(UUIDUtils.createUUID()); msg.setTimestamp(System.currentTimeMillis()); Map map = new HashMap(); map.put("isSYN", true); msg.setBody(map); msgBroker.routeMessageToService(msg, null); }
前台代码var consumer:Consumer=new Consumer(); consumer.destination="tick-data-feed"; consumer.subtopic=entityName; consumer.resubscribeAttempts = -1; consumer.resubscribeInterval = 10*1000; consumer.addEventListener(MessageEvent.MESSAGE, messageHandler); consumer.addEventListener(ChannelEvent.DISCONNECT, disconnect); consumer.addEventListener(ChannelFaultEvent.FAULT, faultHandle); consumer.subscribe();
推送配置文件如下。<!-- 推送 --> <channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel"> <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/streamingamf" class="flex.messaging.endpoints.StreamingAMFEndpoint"/> <properties> <connect-timeout-seconds>10</connect-timeout-seconds> <idle-timeout-minutes>0</idle-timeout-minutes> <max-streaming-clients>10</max-streaming-clients> <server-to-client-heartbeat-millis>1000</server-to-client-heartbeat-millis> <user-agent-settings> <user-agent match-on="MSIE" kickstart-bytes="2048" max-streaming-connections-per-session="20"/> <user-agent match-on="Firefox" kickstart-bytes="2048" max-streaming-connections-per-session="20"/> </user-agent-settings> </properties> </channel-definition>
在实际运行当中,几天过后tomcat内存一直增加(平均增加3G),一直到溢出。经过分析 AsyncMessage 类占用了70%的内存。一直得不到释放。
java+flex的项目,怎么优化内存的释放呢?2013年5月23日 08:56
5个答案 按时间排序 按投票排序
-
我测试了一下,把alarmSynMsg弄成单例的也不行,经测试,发现是MessageBroker.getMessageBroker("_messageBroker").routeMessageToService(msg, null);引起
2013年5月29日 09:05
-
blaze ds消息推我也用了,只要你没出什么大的漏子,没什么问题的。不过flash本身的GC做的就不是很好,平时写flex as时 要注意一些性能问题,比如外部资源的引用、监听器的销毁等等。。 flash builder的profile这个时候能派上用场了,你试试!
2013年5月23日 17:09
-
AsyncMessage msg = new AsyncMessage();
AsyncMessage 对象在内存中很多吗?考虑用单例工厂模式来生成该对象试试,每次修改clientId和body后再推送试试。2013年5月23日 09:50
相关推荐
在IT行业中,Flex是一种基于ActionScript的开源框架,主要用于创建富互联网应用程序(RIA)。它允许开发者构建具有丰富用户界面的Web应用,同时提供强大的数据可视化和交互功能。Java则是一种广泛应用的面向对象的...
Flex应用程序通常运行在Adobe Flash Player或Adobe AIR之上,能够提供丰富的图形、动画和交互效果。 Java,则是一种广泛使用的后端编程语言,尤其适合构建企业级应用。在与Flex结合使用时,Java作为服务器端处理...
Java、Flex和BlazeDS是开发富互联网应用程序(RIA)时常用的一组技术组合。Java在后端提供数据处理和业务逻辑,而Flex作为前端UI框架,为用户提供交互丰富的图形界面。BlazeDS是Adobe提供的一个开源服务器端组件,它...
通过阅读这篇文章,我们可以学习到如何配置和运行一个简单的Java和Flex应用,以及BlazeDS在其中的角色。 1. **BlazeDS简介**: BlazeDS是Java服务器与Flex客户端间实时通信的中间件,它支持HTTP、RTMP和WebSockets...
掌握Flex、LCDS和Java的整合,开发者可以构建出高性能、用户体验优秀的RIA,广泛应用于企业级应用、数据可视化、实时监控等多种场景。在学习过程中,除了文档,还可以参考官方文档、在线教程、社区论坛等资源,不断...
`src`目录下通常包含ActionScript类文件,这些文件是Flex应用程序的核心,用于实现用户界面和与Java后端的通信。 `create.sql`可能是数据库初始化脚本,用于创建数据库表结构和初始数据。`WEB-INF`目录包含Web应用...
3. 缓存管理:提供数据缓存机制,提高数据访问速度和应用性能。 4. 事务处理:支持JTA(Java Transaction API),确保在Flex和Java间进行的复杂操作的原子性和一致性。 四、项目部署 1. Tomcat配置:需将解压后的...
总的来说,BlazeDS 是一个强大的工具,它简化了 Flex 与 Java 之间的通信,提高了应用性能,使得开发者能够更专注于业务逻辑,而非底层通信细节。通过上述步骤,开发者可以建立一个基础的 Flex+Java+BlazeDS 开发...
最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者努力开发出来的、经实际项目检验过的Flex企业应用框架的源代码,具有非常高的参考价值。 本书对Flex的基础知识着墨不多,所有内容都...
而“工具”可能指的是用于开发、调试或部署Java和Flex应用的相关工具,如Flex Builder、Flash Builder、IntelliJ IDEA等,或者可能涉及到Maven、Gradle等构建工具,以及 BlazeDS 或 LCDS 作为Java和Flex之间的数据...
### Flex应用性能优化 性能优化是任何企业级应用开发中不可忽视的环节。本书的最后一部分着重讨论了Flex应用的性能优化策略,包括但不限于代码优化、资源加载策略、缓存机制、网络通信优化等方面。通过这些优化措施...
Java_Flex技术结合了Java的强大后端处理能力和Flex的富互联网应用程序(RIA)前端展示功能,为开发跨平台、交互性强的Web应用提供了强大的解决方案。本文将深入探讨Java与Flex的集成,以及如何利用这两项技术的优势...
4. **Flex与Java交互**:Flex应用可以通过HTTPService、WebService、Remoting等方法与Java后台进行数据交互。AMF通道是Flex与Java集成的常用方式,因为AMF可以大大减少网络传输的数据量和提高性能。在Java端,可以...
最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者努力开发出来的、经实际项目检验过的Flex企业应用框架的源代码,具有非常高的参考价值。 本书对Flex的基础知识着墨不多,所有内容都...
- **Flash Builder 4.5** 是Adobe公司提供的一个专门用于Flex应用开发的IDE,它基于Eclipse平台,支持MXML和ActionScript的编写。 - **MyEclipse 10** 是一个强大的Java EE集成开发环境,集成了多种开发工具,可以...
Blazeds提供了AMF(Action Message Format)协议,可以高效地传输数据,支持实时双向通信,使Flex应用能够与Spring、Hibernate等后端框架无缝集成。 这个整合方案的核心在于通过Blazeds连接Flex前端和后端服务,...
1. **Flex基础**:学习Flex SDK,理解MXML和ActionScript 3.0,这是构建Flex应用的主要工具。熟悉基本组件如Button、Label、TextInput等,并学习如何布局和样式化这些组件。 2. **BlazeDS配置**:安装并配置BlazeDS...
Flex是一种开源的、基于Flash平台的富互联网应用(RIA)开发框架,由Adobe公司提供。它主要用于构建具有丰富用户体验的Web应用程序。...理解并掌握这些知识点,将有助于构建高性能、交互性强的Flex应用。
在Java Spring和Flex框架下实现文件上传功能是一个常见的需求,特别是在构建富互联网应用程序(RIA)时。Spring框架提供了强大的后端支持,而Flex则作为前端交互界面,为用户提供丰富的用户体验。下面将详细介绍如何...