小编Rod*_*nez的帖子

将BigDecimal向上舍入为整数值

我有一个BigDecimal,其值为450.90,我想要向上舍入到下一个空洞整数值,然后打印没有任何小数点的整数值,就像这样;

Val:450.90 - > Rounded:451.00 - >输出:451

Val:100.00001 - > Rounded:101.00000产量:101

检查了一些解决方案,但我没有得到预期的结果,继承我的代码;

BigDecimal value = new BigDecimal(450.90);
value.setScale(0, RoundingMode.HALF_UP); //Also tried with RoundingMode.UP
return value.intValue();
Run Code Online (Sandbox Code Playgroud)

谢谢!

java math rounding bigdecimal

17
推荐指数
2
解决办法
3万
查看次数

JSF性能改进

我正在使用JSF 2.2 + Primefaces开发WebApp ...项目正在快速增长,并且第一次性能测试非常差(由于我对JSF LifeCylce在非功能性需求方面的知识不足 - 即完全是ajax网站),然后我们可以改善一点,但结果仍然不如预期.(根据动作,我们有300~1500毫秒的时间,想法是性能大约500毫秒,给予或采取).主要是恢复视图阶段和渲染响应是消费者(在其他情况下,花费的时间毫无价值)的时间.对于某些操作,Invoke Aplication也需要时间(由于DB调用).

在网上阅读了很多文章后,有很多很棒的技巧要考虑(当然很多来自stackoverflow),例如:

  • 改善数据库查询

我们有一些复杂的,用两个Hibernate Criterias查询完成,所以我们在这里工作.(也许使用纯SQL查询,复杂的查询使用子查询?)

  • 永远不要在Bean的getter上定义业务逻辑

得到它了!

  • 将适当的范围设置为bean并在其上存储只不过是必要的东西

我们有一个完整的ajax站点,所以View Scoped几乎就像Session Scoped一样,我们使用SessionBeans作为一种'Cache'来存储我们不希望每次都从DB获取的关键数据+定义业务逻辑这里.

  • 选择正确的JSF状态保存方法 - 客户端Vs服务器

为此,我需要进行更多的研究,检查各种可能性的优缺点,然后测试每一种的可能性.

到目前为止非常清楚,现在一些额外的提示我对此有些怀疑.

  • 尽可能使用vanilla HTML,最好使用h:标签而不是p:标签

简单的HTML是清楚的,有意义的,现在在h:和p之间:它值多少钱?例如.

<p:commandButton value="Value" 
             styleClass="class" 
             actionListener="#{myBean.doStuff()}"
             ajax="true" process="@form" update="@form" 
             onsuccess="jsFunction()" />
Run Code Online (Sandbox Code Playgroud)

VS

<h:commandButton value="Value" 
             styleClass="class" 
             actionListener="#{myBean.doStuff()}" >
       <f:ajax execute="@form" render="@form" event="onclick" />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

要么

<ui:fragment... vs <p:fragment...
Run Code Online (Sandbox Code Playgroud)

要么

<p:outputLabel value="#{myBean.value}" rendered="#{myBean.shouldRender}" />
Run Code Online (Sandbox Code Playgroud)

VS

<ui:fragment rendered="#{myBean.shouldRender}">
    <label>#{myBean.value}</label>
</ui:fragment>
Run Code Online (Sandbox Code Playgroud)

我一直在使用Primefaces和Jsf标签以及一些简单的HTML混合使用了一段时间.(主要是PF由于其组件的功能)我现在普通的HTML总是会更快,但在JSF和另一个框架之间?如果我这样做,改变它将花费大量时间,我不希望知道它的结果根本没有相关的差异.

  • 自定义Facelets标记与复合组件

我认为这是关键.对它们的差异仍有一些疑问,在两者的实现上,CC使用起来非常简单和灵活,但缺点是它们完全包含在ViewTree和JSF为每个请求重新生成(如果我没有记错的话) ,而自定义标签使用起来似乎有点复杂(不是那么多),但其优势在于ViewTree上只包含了实际呈现的内容,仅此而已,使RESTORE VIEW更省时.我们有几个复合组件,没有Facelets标签,所以这里要做很多工作.我还没有找到一篇很好的文章解释它们之间的差异,当一个应该被使用时和另一个(已经读过输入,消息使用TAGS和更复杂的东西CC).如果想要更喜欢标签与CC,那么我将没有选择而不是使用CC?在CC中使用自定义标签是否可以使它们更轻松地用于处理它们?

我即将进入修改孔项目的旅程,以获得更好的性能,这将花费我几天的时间,想法是这次获得更好的结果; 所以每个提示,建议和建议都非常欢迎!谢谢你们的时间!

performance jsf primefaces jsf-2

13
推荐指数
1
解决办法
2万
查看次数

在某个点中止 concat observables

我有一个要调用的可观察对象列表,我正在使用 concat 来逐个执行它们,问题是我想在收到一个结果后的某个时刻停止 concat 执行

const list = [
    this.http.get('someurl'), 
    this.http.get('someurl'), 
    this.http.get('someurl'),
    ...
    ];

concat(list).subscribe((result) => {
     if(result === 3){
        //stop concat and return
     }
});
Run Code Online (Sandbox Code Playgroud)

rxjs typescript angular

2
推荐指数
1
解决办法
415
查看次数

标签 统计

angular ×1

bigdecimal ×1

java ×1

jsf ×1

jsf-2 ×1

math ×1

performance ×1

primefaces ×1

rounding ×1

rxjs ×1

typescript ×1