0 0

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个答案 按时间排序 按投票排序

0 0

我测试了一下,把alarmSynMsg弄成单例的也不行,经测试,发现是MessageBroker.getMessageBroker("_messageBroker").routeMessageToService(msg, null);引起

2013年5月29日 09:05
0 0

alarmSynMsg所在的类用单例模式呢?这样是否可解决?

2013年5月24日 08:41
0 0

blaze ds消息推我也用了,只要你没出什么大的漏子,没什么问题的。不过flash本身的GC做的就不是很好,平时写flex as时 要注意一些性能问题,比如外部资源的引用、监听器的销毁等等。。 flash builder的profile这个时候能派上用场了,你试试!

2013年5月23日 17:09
0 0

blazeDS

2013年5月23日 11:59
0 0

AsyncMessage msg = new AsyncMessage(); 
AsyncMessage 对象在内存中很多吗?考虑用单例工厂模式来生成该对象试试,每次修改clientId和body后再推送试试。

2013年5月23日 09:50

相关推荐

    flex+java+mysql登录

    在IT行业中,Flex是一种基于ActionScript的开源框架,主要用于创建富互联网应用程序(RIA)。它允许开发者构建具有丰富用户界面的Web应用,同时提供强大的数据可视化和交互功能。Java则是一种广泛应用的面向对象的...

    java+flex通信源码

    Flex应用程序通常运行在Adobe Flash Player或Adobe AIR之上,能够提供丰富的图形、动画和交互效果。 Java,则是一种广泛使用的后端编程语言,尤其适合构建企业级应用。在与Flex结合使用时,Java作为服务器端处理...

    java+flex+blazeds配合例子

    Java、Flex和BlazeDS是开发富互联网应用程序(RIA)时常用的一组技术组合。Java在后端提供数据处理和业务逻辑,而Flex作为前端UI框架,为用户提供交互丰富的图形界面。BlazeDS是Adobe提供的一个开源服务器端组件,它...

    Java+Flex+BlazeDS HelloWorld例子

    通过阅读这篇文章,我们可以学习到如何配置和运行一个简单的Java和Flex应用,以及BlazeDS在其中的角色。 1. **BlazeDS简介**: BlazeDS是Java服务器与Flex客户端间实时通信的中间件,它支持HTTP、RTMP和WebSockets...

    Flex+LCDS+JAVA入门

    掌握Flex、LCDS和Java的整合,开发者可以构建出高性能、用户体验优秀的RIA,广泛应用于企业级应用、数据可视化、实时监控等多种场景。在学习过程中,除了文档,还可以参考官方文档、在线教程、社区论坛等资源,不断...

    Java+Flex在线电影网站源代码. java网站 flex播放视频

    `src`目录下通常包含ActionScript类文件,这些文件是Flex应用程序的核心,用于实现用户界面和与Java后端的通信。 `create.sql`可能是数据库初始化脚本,用于创建数据库表结构和初始数据。`WEB-INF`目录包含Web应用...

    Flex+Java+(lcds)源码

    3. 缓存管理:提供数据缓存机制,提高数据访问速度和应用性能。 4. 事务处理:支持JTA(Java Transaction API),确保在Flex和Java间进行的复杂操作的原子性和一致性。 四、项目部署 1. Tomcat配置:需将解压后的...

    Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)

    总的来说,BlazeDS 是一个强大的工具,它简化了 Flex 与 Java 之间的通信,提高了应用性能,使得开发者能够更专注于业务逻辑,而非底层通信细节。通过上述步骤,开发者可以建立一个基础的 Flex+Java+BlazeDS 开发...

    Flex企业应用开发实战.rar

    最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者努力开发出来的、经实际项目检验过的Flex企业应用框架的源代码,具有非常高的参考价值。 本书对Flex的基础知识着墨不多,所有内容都...

    java整合flex开发应用

    而“工具”可能指的是用于开发、调试或部署Java和Flex应用的相关工具,如Flex Builder、Flash Builder、IntelliJ IDEA等,或者可能涉及到Maven、Gradle等构建工具,以及 BlazeDS 或 LCDS 作为Java和Flex之间的数据...

    flex企业应用开发实践.pdf

    ### Flex应用性能优化 性能优化是任何企业级应用开发中不可忽视的环节。本书的最后一部分着重讨论了Flex应用的性能优化策略,包括但不限于代码优化、资源加载策略、缓存机制、网络通信优化等方面。通过这些优化措施...

    Java_Flex,Java_Flex,Java_Flex

    Java_Flex技术结合了Java的强大后端处理能力和Flex的富互联网应用程序(RIA)前端展示功能,为开发跨平台、交互性强的Web应用提供了强大的解决方案。本文将深入探讨Java与Flex的集成,以及如何利用这两项技术的优势...

    Flex实例 Flex基础 Web+Flex+LCDS Flex跟Java交互

    4. **Flex与Java交互**:Flex应用可以通过HTTPService、WebService、Remoting等方法与Java后台进行数据交互。AMF通道是Flex与Java集成的常用方式,因为AMF可以大大减少网络传输的数据量和提高性能。在Java端,可以...

    Flex企业应用开发实战-迷你版-电子书

    最后重点探讨Flex应用性能优化等方面的高级知识。值得一提的是,本书公开了作者努力开发出来的、经实际项目检验过的Flex企业应用框架的源代码,具有非常高的参考价值。 本书对Flex的基础知识着墨不多,所有内容都...

    flex+java+tomcat集成之后的新建工程

    - **Flash Builder 4.5** 是Adobe公司提供的一个专门用于Flex应用开发的IDE,它基于Eclipse平台,支持MXML和ActionScript的编写。 - **MyEclipse 10** 是一个强大的Java EE集成开发环境,集成了多种开发工具,可以...

    MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案

    Blazeds提供了AMF(Action Message Format)协议,可以高效地传输数据,支持实时双向通信,使Flex应用能够与Spring、Hibernate等后端框架无缝集成。 这个整合方案的核心在于通过Blazeds连接Flex前端和后端服务,...

    flex+java入门

    1. **Flex基础**:学习Flex SDK,理解MXML和ActionScript 3.0,这是构建Flex应用的主要工具。熟悉基本组件如Button、Label、TextInput等,并学习如何布局和样式化这些组件。 2. **BlazeDS配置**:安装并配置BlazeDS...

    Flex调用Webservice及java程序

    Flex是一种开源的、基于Flash平台的富互联网应用(RIA)开发框架,由Adobe公司提供。它主要用于构建具有丰富用户体验的Web应用程序。...理解并掌握这些知识点,将有助于构建高性能、交互性强的Flex应用。

    java spring +flex实现文件上传

    在Java Spring和Flex框架下实现文件上传功能是一个常见的需求,特别是在构建富互联网应用程序(RIA)时。Spring框架提供了强大的后端支持,而Flex则作为前端交互界面,为用户提供丰富的用户体验。下面将详细介绍如何...

Global site tag (gtag.js) - Google Analytics