Felix框架中当注册新的服务时,会遍历触发所有满足条件的服务监听器。
如果系统中存在大量服务监听器时,新服务的注册性能明显下降。
实测数据,当服务监听器数量达到接近4000个时,新注册300个服务,
耗时将近20秒(CPU:i3双核,4G内存)。
----------
如果系统使用Felix,组件框架使用ipojo,可能会产生这样的情况。
ipojo的机制,每声明一个Component/Instance,每增加一个@Require/Bind
(即对其他服务的依赖),都会产生新的服务监听器,从而导致系统内存在
大量的服务监听器。
这些服务监听器的过滤表达式通常稍微复杂,例如:
(&(objectclass=org.apache.felix.ipojo.extender.ExtensionDeclaration)(ipojo.extension.name=component))
这样的形式。每一个新的服务注册或者修改,都会触发所有的监听器过滤表达式
被执行。
查看Felix框架关于服务注册时触发服务事件的代码,大概:
org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(
this, Request.SERVICE_EVENT, listeners, event, oldProps);
相关推荐
Apache Felix Web Console Bundle整理包 管理控制台 框架运行环境 idea使用集成包 包含两个demo实例
将自定义包编译并包含到 felix 框架中 用法 任务 启动板:构建 apache felix 框架 runFelix:运行felix框架 felix 框架将在以下目录中创建: build/launchpad 依赖配置 这个插件定义了一个名为“felix”的新依赖...
FELIX
ApacheFelix框架包 OSGI开源框架源码下载
Apache的Felix框架最新版本,OSGi容器,有需要的来这里下载。
osgi框架最新felix-framework-5.6.8,想找个felix插件版的,可惜404
felix文档 一个简单的helloworld
OSGi In Practice作者的推荐OSGi框架的Felix 最新版本 2.0.4包括jar包,配置文件等等 学习OSGi必须的
felix 可以用jar包felix 可以用jar包felix 可以用jar包felix 可以用jar包felix 可以用jar包
华为Felix开发和运行包
#Apache Felix OSGi框架
OSGI企业应用开发博文源码
在felix2.0.1扩展Hibernate,使之工作于OSGI框架之中。
运用apache的felix,写的demo
Warhammer's Felix and Gotrek series. It contain eleven book.
Felix_OSGi实作,介绍最流行的OSGI framwork-Felix的好文档
使用 Felix 和 Struts2 开发 Web 应用 采用了struts 构建web ,feilx 构建bundle
内含bin,bundle,conf,doc等文件包含了OSGI框架和标准的服务。
felix软件包 org.apache.felix.main.distribution-5.4.0.zip
Felix框架版本2.0.2的源代码,从Eclipse导出的zip包,可以重新导入为Eclipse的项目