草庐IT

高效化

全部标签

ios - 如何安全高效地轮询 API?

我正在使用Swift开发一个企业iOS应用程序,它需要从我们的API中提取项目列表并将它们显示在表格View中。该列表可能每天更改几次,但我们的系统不会在数据更改时通知我们。相反,应用程序需要定期轮询,比如每两个小时一次,以获取最新数据并刷新列表。我已经直接使用NSURLSession实现了API调用。我的问题是,设置轮询机制的安全有效方法是什么?如果有额外的API服务必须轮询,可能以不同的时间间隔轮询怎么办? 最佳答案 由于您正在开发企业应用并且不需要应用商店批准,您可以“滥用”现有后台模式之一,例如VoIP以定期轮询您的数据。不

java - 高效的 BigDecimal 上下舍入到两位小数

在Java中,我试图找到一种有效的方法来根据条件将BigDecimal舍入为两位小数,向上或向下。IFconditiontruethen:12.390--->12.3912.391--->12.4012.395--->12.4012.399--->12.40Ifconditionfalsethen:12.390--->12.3912.391--->12.3912.395--->12.3912.399--->12.39完成此任务的最有效方法是什么? 最佳答案 publicstaticBigDecimalround(BigDecimal

Java:高效的 ArrayList 过滤?

我需要过滤ArrayList并删除找到的元素。作为Java的新手,我想知道实现此目标的最有效方法是什么(很重要,因为它在移动设备上运行)。目前我这样做://Wedisplayonlytop-leveldealers(parentId=-10)ArrayListsubDealers=newArrayList();for(DealerProductCountdealer:wsResponse.Dealers){if(dealer.ParentId!=-10)subDealers.add(dealer);}wsResponse.Dealers.removeAll(subDealers);没有

java - 高效部署同一 WAR 的多个实例(不同的上下文,相同的容器)

我有一个WAR(app.war)和一个容器(Tomcat、Jetty、Glassfish等等)。我的目标是按需在容器上部署同一Web应用程序的数百个实例。http://foo/app1-->app.warhttp://foo/app2-->app.warhttp://foo/app3-->app.war...http://foo/appN-->app.war一些明显的实现方式:在Tomcat中,为每个应用程序(名为appN.xml)创建一个context.xml文件,所有文件都指向同一个WAR。其他容器也有类似方法这种方式的问题:会爆N次WAR,占用大量磁盘空间使用符号链接(symbo

java - LongAccumulator 是如何实现的,使其更高效?

我了解到新的Java(8)引入了新的同步工具,例如LongAccumulator(在atomic包下)。在文档中说,当来自多个线程的变量更新频繁时,LongAccumulator效率更高。我想知道它是如何实现的以提高效率? 最佳答案 这是一个非常好的问题,因为它展示了使用共享内存进行并发编程的一个非常重要的特性。在进入细节之前,我必须退后一步。看看下面的类:classAccumulator{privatefinalAtomicLongvalue=newAtomicLong(0);publicvoidaccumulate(longva

java - Java 如何高效地搜索 jar 文件中的类?

假设我有500个jar文件链接到我的程序,总计超过500MB(所有jar的大小,而不是每个jar的大小)并且我的程序调用了其中一个中的类。Java是如何通过jars查找一个类的,这样的效率如何?上)?O(log(n))? 最佳答案 Java在jar的内部目录结构中查找与完全限定名称完全匹配的内容。它看起来;它不搜索。如果类路径上有500个jar文件,Java将按照指定的顺序一个一个地查找它们,直到找到匹配项。如果包含给定类的jar是最后一个,Java将查找500个jar文件。所以我猜是O(n)。更新:上述行为是默认行为。然而,正如H

java - Java 中高效的 BigInteger 乘法模 n

我可以计算两个BigInteger(例如a和b)模n的乘积。这可以通过以下方式完成:a.multiply(b).mod(n);但是,假设a和b是同阶的n,这意味着在计算过程中,一个新的BigInteger是正在计算,其长度(以字节为单位)为〜2n。我想知道是否有我可以使用的更高效的实现。类似modMultiply的东西像modPow一样实现(我相信它不计算功率然后计算模数)。 最佳答案 我只能想到a.mod(n).multiply(b.mod(n)).mod(n)而且您似乎已经意识到了这一点。BigInteger有一个toByteA

java - StringBuffer new() 和 delete(0, sb.length()) 哪个更高效?

人们经常争论避免创建对象(尤其是在循环中)被认为是好的做法。那么,对于StringBuffer,什么是最高效的呢?StringBuffersb=newStringBuffer();ObjectInputStreamois=...;for(inti=0;i我的意思是,有人可能会争辩说创建对象比循环数组更快。 最佳答案 首先StringBuffer是线程安全的,与StringBuilder相比性能较差。StringBuilder不是线程安全的,但因此速度更快。最后,我更喜欢使用setLength将长度设置为0.sb.setLength(

java - 高效的 OSGi 开发工作流程

我开发的产品由许多作为功能运行在karaf之上的包组成。通常我们的开发人员一次处理一个包。我们正常的开发过程是这样的:编码、编译、复制包到部署文件夹、测试。我们还发现,hotdeploy只是拒绝覆盖某些作为功能安装的bundle,而无需重新启动服务器或功能卸载/重新安装,因此有时周期会更长。我的问题是:社区中是否有人有更好的方法?我们做事的方式可行,但我觉得它非常缓慢且效率低下,我敢打赌有人想出了更好的办法!编辑:我意识到我的问题很不清楚……我们在Karaf下使用Equinox。我们还使用Eclipse和Maven,尽管我不知道使用Maven是否相关。 最佳

Java indexOf 函数比 Rabin-Karp 更高效?文本搜索效率

几周前,我向Stackoverflow提出了一个问题,关于创建一种有效的算法来搜索大量文本中的模式。现在我正在使用字符串函数indexOf进行搜索。一个建议是使用Rabin-Karp作为替代方案。我写了一个小测试程序如下来测试Rabin-Karp的实现。publicstaticvoidmain(String[]args){Stringtest="Maryhadalittlelambwhosefleecewaswhiteassnow";Stringp="was";longstart=Calendar.getInstance().getTimeInMillis();for(intx=0;x