`
javamonkey
  • 浏览: 166750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
常规来说,IO流提供了输出字符串(字符数组)的功能,所以,通常的整型输出应该是这样的代码:String str = String.valueOf(12);out.write(str);对于模板引擎来说,输出整形变量很常见,事实上,这个地方有非常大的性能提高空间。我们只要分析这俩句话的源码,就能看出,如何提高io输出int性能。
对于一个程序语言来说,访问变量是一个基本的操作,也是最频繁使用的操作。提高Beetl访问变量的效率,将整体上提高Beetl的性能,本文介绍了Beetl是如何访问变量的。首先看一个简单的例子:var a = "hi";print(a);第一行定义a变量,第二行引用a变量打印输出,通常设计下,可以在变量定义的时候将变量保存到map里,需要用的时候根据变量名取出。因此上诉代码可以翻译为java的类似如下代码
<dependency
本文是Beetl模板引擎的Spring整合扩展的使用文档 beetl-spring源码和使用示例的发布在这里 https://git.oschina.net/shishuifox/beetl-spring beetl的官网在这里 http://ibeetl.com 一、GroupTemplateFactoryBean         GroupTemplateFactoryBean实现了FactoryBean<GroupTemplate>接口,是Beetl核心类Grou
  Java模板引擎已经发展了10余年,使用模板引擎者和模板引擎开发者都不思进取,得过且过,变化一直不大。毕竟,有技术含量值得屌丝追求的还是在后台。譬如早期的EJB,后来的WebService,SSH,还有现在的云计算,NOSQL等。但是,模 ...
  6月10号的一次调试,把输出buffer由原来的1024*8 改成了 10字节但忘记改回,也就是说,模板输出每满10个字节就会IO输出,导致性能比Freemarker差一些。我是最近在做性能再次优化的时候发现此严重问题的 我查看了下载记录,大概有260个下载受到影响。我现在已经修复此问题,请大家更新到最新版本,http://beetl.sourceforge.net/ 更新后,能保证性能在优化模式下3-4倍于Freemarker   下图是左边是6月10号的错误代码,右边是更改后的现在的            
1 支持了类似Freemarker的 General Get,即如果模型有一个public Object get(String key);可以在模板中当着属性引用 如: ${user.name},或者采用[]方式 如${user['name']} 2 通过Config类来创建GroupTemplate。Config 默认会先装载 /org/bee/tl/core/beetl-default.properties, 然后如果classpath 下存在beetl.properties, 再装载或者覆盖其属性。beetl-default.properties 内容 ...
  这是最近几个月beetl 使用者完成的俩个电商网站截图: 最近在做中文翻译成英文以走出国门,没有翻译完,还有30多页了,虽然翻译的蹩脚,但看着已经有点像模像样了,等着慢慢优化,如果有自愿者能帮助,那就更好了   Beetl Guid ---Joel Li 2012-6-29 1.      What is Beetl .........................
  Resin3 JSP预编译实现     一、 预编译需求 通过预先编译JSP ,而不是在线上编译,节省了线上编译时间,降低系统上线初期超高的 CPU 使用率,以及用户请求等待事件 默认方式,Resin3 提供了俩种预编译( http://www.caucho.com/resin-3.0/jsp/compile.xtp ),但在实际使用的时候,无论哪种方法,都只能编译部分 JSP ,导致优化很不明显,据运维的说,还发生了 log4j 日志无法输出的情况(这个我也很莫名其妙,至今不知道原因) 二、 预编译改善原理
  除了分身做beetl(http://beetl.sourceforge.net/) 外,实际上还做了一个Spring相关的,技术含量不高,但还是很有用。所以推荐给大家   一、 概述 Spring-Dumpling(简称 SD)  是在基于 Spring 框架下的提供协作服务,正如 Spring 自带的  @Service,SD 提供 @CooperationService  以及如下注解: @Publish / @Subscribe @ClusterSync        @RemotePublish / @ ...
介绍除了beetl外,在维护的另外一个小开源项目,spring-dumpling,提供一组注解来增强spring service的协作 一:协作服务1 @CooperationService,类似于Spring的@Service所有标记@CooperationService的类都将检查类方法里是否有如下annotation @Publish / @Subscribe@ClusterSync @RemotePublish / @RemoteSubscriber @RemoteNotify / @RemoteWait@Process / @Task 2 @Publish,有如下属性path: ...
Beetl最近也没有更新,正好有时间贡献点其他方面的文章。Struts2官方已经发布了多次漏洞补丁,但根源在于OGNL能调用静态办法,所以彻底解决漏洞的办法是底层禁止OGNL调用一些特定的java类,如System,Runtime类 我们底层入手,调用OGNLRuntime静态方法,设置我们自己的MethodAccessor类,能禁止OGNL在表达式中调用Runtime,System等类。这已经验证通过。   如下图从左到右,是action的参数赋值过程,为了堵住漏洞,通常是在ParameterInteceptor做过滤,但几年来,都有漏洞,如果我们在OGNLRuntime那做过滤,因 ...
老发表beetl的更新日志,我也烦了,近期不忙,正好贡献点其他经验出来吧:解决内存泄露的一个方法是分许heap dump文件,可以参考 http://visualvm.java.net/oqlhelp.html 我自己总结了一下以后可能用到的一些OQL,如下: 查找所有包含指定类的list heap.objects(heap.findClass("java.util.ArrayList"),true, function(it){if(it.size<=0){return false ;}var i=0;var data = it.elementData[0]; ...
东西好不好,先比一下功能,拿目前最流行的Freemarker来做比较 完全参考了 Freemarker 官方文档( 2.3.19 ) 第一列是freemarker官方文档目录,第二列是表示 beetl 中是否具有同样的功能 通过下列表格,可以看出绝大部分功能, beetl 都是支持的   功能 是否支持 备注 1.1 ...
beetl是一个语法类似javascript的模板语言,可以用于代码生成和Web开发,易用性和性能非常好,功能也很全 ,如下是在性能上最新优化成功 Beetl1.2M1字节优化成果   还是以以前的模板为准(大小6K),循环渲染50000次,需要时间(毫秒为单位)如下   Beetl1.2M1 解释执行方式(普通模式),运行三次,分别 1356,1365,1348 Beetl1.2M1 编译执行方式(普通模式),运行三次,分别 913,922,905Freemarker 分别是 1155,1130,1122   Beetl1.2M1 允许字节流优化 ...
Global site tag (gtag.js) - Google Analytics