小编Jas*_*onG的帖子

redis如何申请O(1)时间进行密钥查找?

我有一个问题 - 在索引中查找键值对 - 比方说cassandra或postgres - 通常在O(logn)附近

来源:https://github.com/tinkerpop/blueprints/wiki/Graph-Indices.

在redis文档中,它指出运行时复杂性为O(1).

资料来源:http ://redis.io/commands/get http://redis.io/commands/hget

获取多个键的值只是线性O(m),其中m是检索到的键数 http://redis.io/commands/hmget

这怎么可能?

time-complexity redis

32
推荐指数
1
解决办法
6197
查看次数

Scala - 在使用案例类尝试获取TypeTag时没有TypeTag可用异常?

我正在看scala反射API,我有很多例外.

Doc参考:http: //docs.scala-lang.org/overviews/reflection/environment-universes-mirrors.html

如何从通用中获取typetag?

  def getChildSettings[T: ru.TypeTag](path: String, settingsParameterObject: T) = {

    import scala.reflect.runtime.{ currentMirror => m }

    val m = ru.runtimeMirror(getClass.getClassLoader)
    val classC = ru.typeOf[T].typeSymbol.asClass
}
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

No TypeTag available for ParameterObject.type
Run Code Online (Sandbox Code Playgroud)

即使是一个非常简单的例子似乎也不起作用(在repl中编辑是的)

import scala.reflect.runtime.universe._
import scala.reflect.runtime.currentMirror
import scala.reflect.runtime.{universe => ru}

def getTypeTag[T: ru.TypeTag](obj: T) = ru.typeTag[T]

case class ParameterObject(stringType: String, optionType: Option[String])

getTypeTag(ParameterObject)
Run Code Online (Sandbox Code Playgroud)

我猜它是关于我如何调用该方法的.

reflection types scala

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

Scala 2.10 - 八进制转义已被弃用 - 现在如何习惯性地执行八进制转换?

请参阅 https://issues.scala-lang.org/browse/SI-5205https://github.com/scala/scala-dist/pull/20

从scala中弃用了八进制转义值前导0,我没有看到惯用的替代方法.

你现在如何处理scala 2.10中的octals?

编辑 - unix权限是八进制

scala idiomatic octal scala-2.10

14
推荐指数
2
解决办法
3899
查看次数

如何让classOf成为ClassTag?

这不起作用 - 有什么方法可以让我的代码保持一致,并以某种方式反映classOf ClassTag?

class Foo[T : reflect.ClassTag] { def foo = classOf[T] }

<console>:7: error: class type required but T found
   class Foo[T : reflect.ClassTag] { def foo = classOf[T] }
Run Code Online (Sandbox Code Playgroud)

看来这应该工作,但唉:(

reflection scala

14
推荐指数
1
解决办法
6424
查看次数

Akka - 在负载测试期间,forkjoinpool.scan占CPU时间的20%

我们在负载测试和扩展akka应用程序方面取得了一些进展,但我们看到scala.concurrent.forkjoin.ForkJoinPool.scan()在visualvm中成为第二大热点,约占自我时间的20%.自我时间(CPU)列仅表示其中的一小部分(小于自身时间列值的1%).

我怀疑这意味着阻塞或上下文切换可能存在问题,但我不太确定 - 任何人都可以提供洞察力吗?如果它是上下文切换我猜测调度调度程序吞吐量到更高的数量可能会增加我们的收益,否则如果它是由阻塞引起的,我们需要更多地读取代码.

任何见解都非常感激.

scalability cpu-usage fork-join akka forkjoinpool

9
推荐指数
1
解决办法
3119
查看次数

为什么scala(1到1000).foreach会在这种情况下抛出异常?

在repl中,这引发了异常,我不知道为什么.我真的很想了解这一点.

scala> (1 until 10000).foreach("%s%s".format("asdf", "sdff"))
java.lang.StringIndexOutOfBoundsException: String index out of range: 8
    at java.lang.String.charAt(String.java:686)
    at scala.collection.immutable.StringLike$class.apply(StringLike.scala:54)
    at scala.collection.immutable.WrappedString.apply(WrappedString.scala:32)
    at scala.collection.immutable.WrappedString.apply(WrappedString.scala:32)
    at scala.collection.immutable.Range.foreach(Range.scala:75)
Run Code Online (Sandbox Code Playgroud)

scala

6
推荐指数
2
解决办法
3340
查看次数

Java8 CompletableFuture recoverWith等价?例如异常但返回CompletableFuture <U>

我没有看到使用异步结果处理异常的明显方法.例如,如果我想重试异步操作.我希望这样的东西,但handleAsync不会做你认为它做的事情 - 它在异步运行另一个线程上的回调.在这里返回CompletionStage是不正确的.当天的危害问题:thenApply就是thenCompose因为exceptionally是为了什么?

CompletionStage<String> cf = askPong("cause error").handleAsync((x, t) -> {
    if (t != null) {
        return askPong("Ping");
    } else {
        return x;
    }
});
Run Code Online (Sandbox Code Playgroud)

askPong问演员的地方:

public CompletionStage<String> askPong(String message){
    Future sFuture = ask(actorRef, message, 1000);
    final CompletionStage<String> cs = toJava(sFuture);
    return cs;
} 
Run Code Online (Sandbox Code Playgroud)

java java-8 completable-future

6
推荐指数
2
解决办法
2682
查看次数

通过索引文件夹备份,删除,恢复Elasticsearch索引

大多数ElasticSearch文档讨论了通过REST API处理索引 - 有什么理由我不能简单地从磁盘移动或删除索引文件夹?

backup disk purge elasticsearch

6
推荐指数
2
解决办法
7511
查看次数

上下文切换睡眠/等待线程

我试图了解操作系统如何处理不同模型中的上下文切换,以更好地理解为什么在请求数量达到峰值的情况下NIO性能更好.除了线程数量可能有限之外,我很好奇如何在大量请求中执行阻塞操作会影响资源利用率.

在每个线程模型的一个请求中,比如基于servlet 2.5的Web应用程序,如果499个线程正在等待数据库IO并且只有一个线程需要工作,则OS上下文在所有这500个线程之间切换,试图找到需要工作的线程?要执行上下文切换,操作系统必须存储当前线程的状态,并恢复下一个线程的状态.执行此操作后,操作系统将发现它不需要任何CPU时间,并将保持上下文切换,直到找到需要工作的线程.此外,在服务器利用率方面,这看起来如何?CPU是否很低,因为它主要受到交换上下文而不是实际计算任何内容的IO成本的约束?

在此先感谢您的帮助.如果你能指出我的书籍,教科书等方向,我也会非常感激.

multithreading nonblocking context-switch threadpool context-switching

5
推荐指数
1
解决办法
3478
查看次数

是| (或)在scala中进行模式匹配时短路?

我注意到没有|| 模式匹配时可用的运算符 - 是| 短路?

scala pattern-matching

4
推荐指数
1
解决办法
367
查看次数