小编St.*_*rio的帖子

如何在TortoiseHg中的修订编辑器上更改View?

我目前使用的是TortoiseHg版本3.0.2

如何指定自定义编辑器以查看特定版本?

在此处输入图片说明

准确地说,我想使用SublimeText。

mercurial tortoisehg

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

为了理解两个相同长度的数组

我有两个Seq[Array[Byte]]数组:

var o1: Seq[Array[Byte]]
var o2: Seq[Array[Byte]]
//...
Run Code Online (Sandbox Code Playgroud)

我需要改变o1数组的Seq,这样如果数组的长度非零,则每个数组都o1被替换o2为相同位置的数组.o2

是否有可能与理解?

scala for-comprehension

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

int用两个最重要的字节来缩短

我有一个整数

int a = //...
Run Code Online (Sandbox Code Playgroud)

intjava中的s由4个字节组成.如果我们将其转换为short,我们将采用两个最不重要的字节.什么是最快的方法来short组成2个最重要byteint

short b = //take two most significant bytes of a
Run Code Online (Sandbox Code Playgroud)

java int short

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

了解Spark中的合并

我有一个关于合并的问题。目前尚不清楚它的副作用。我有以下RDD:

JavaRDD<String> someStrings = //...
JavaRDD<String> coalescedStrings = someStrings.coalesce(100, false); //descreasing
Run Code Online (Sandbox Code Playgroud)

那么,实际发生了什么?如果我进行someStrings一些操作会影响coalescedStrings吗?

java apache-spark

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

Java中的OptionT?可能吗?

我对ScalaZ提供的monad转换器印象深刻,现在对是否有可能OptionT在Java中实现类似功能感到惊讶?

在Scala中,我们可以使用TypeClasses来简化实现。Java中有类似的东西吗?

java monads scala

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

为什么在映射内存时需要MAP_PRIVATE标志?

我正在尝试匿名映射内存页面。就这个:

mov rax, 0x09   ; SYS_mmap
mov rdi, 0x00   ; addr is NULL
mov rsi, 0x8000 ; x86 page_size
mov rdx, 0x02   ; PROT_WRITE
mov r10, 0x20   ; MAP_ANONYMOUS
mov r8, -1      ; fd = -1
mov r9, 0x00    ; offset = 0
syscall

mov [rax], dword -2 ; Segmentation fault, rax = -22
Run Code Online (Sandbox Code Playgroud)

这是SegFaulted。但是当我添加MAP_PRIVATE到标志时,它可以正常工作:

mov rax, 0x09   ; SYS_mmap
mov rdi, 0x00   ; addr is NULL
mov rsi, 0x8000 ; x86 page_size
mov rdx, 0x02   ; PROT_WRITE …
Run Code Online (Sandbox Code Playgroud)

linux assembly x86-64

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

在向List添加元素时省略括号

我试图添加元素List[String]一会儿省略烦人的括号.我试过这个:

object Main extends App {
    val l = List("fds")
    val xs1: List[String] = l.+:("123")  // ok
    val xs2: List[String] = l +: "123"   // compile-error
}
Run Code Online (Sandbox Code Playgroud)

DEMO

为什么省略括号导致编译错误?这些任务看起来和我一样.有什么不同?

scala list

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

我们可以撤销列表的应用吗?

我在阅读有关scalaz并注意到,我们可以让列表Applicatives到是ApplicativeList.

def sequenceA[F[_]: Applicative, A](list: List[F[A]]): F[List[A]] = list match {
         case Nil     => (Nil: List[A]).point[F]
         case x :: xs => (x |@| sequenceA(xs)) {_ :: _} 
       }
Run Code Online (Sandbox Code Playgroud)

问题是我们可以做相反的事吗?我们可以改造F[List[A]]List[F[A]]

scala scalaz applicative scala-cats

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

什么是 StubRoutines::jbyte_disjoint_arraycopy

我正在测量一些单线程方法调用(用 Scala 编写)并想要分析基准测试。这是它的样子(省略了实现细节)

@State(Scope.Benchmark)
class TheBenchmarks {

    var data: Array[Byte] = _
    @Param(Array("1024", "2048", "4096", "8192"))
    var chunkSize: Int = _

    @Setup
    def setup(): Unit = {
        data = //get the data
    }

    @Benchmark
    @OutputTimeUnit(TimeUnit.MICROSECONDS)
    @BenchmarkMode(Array(Mode.AverageTime))
    def takeFirstAvroRecord(bh: Blackhole): Unit = {
      val fr = //do computation with data and chunk size
      bh.consume(fr)
    }

}
Run Code Online (Sandbox Code Playgroud)

好吧,我得到了一些结果并想理解它,但 -prof perfasm我有点不清楚它的输出。首先:

....[Hottest Regions]...............................................................................
 44.20%   40.50%        runtime stub  StubRoutines::jbyte_disjoint_arraycopy (205 bytes) 
  6.78%    1.62%         C2, level 4  cats.data.IndexedStateT$$Lambda$21::apply, version 1242 (967 bytes) 
  4.39%    0.79% …
Run Code Online (Sandbox Code Playgroud)

java jvm jmh

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

ByteBuffer 内存分配

我试图了解DirectByteBufferLinux 上的工作原理并编写了以下非常简单的程序以在 strace 下运行:

public static void main(String[] args){
    while(true){
        ByteBuffer buffer = ByteBuffer.allocateDirect(8192);
    }
}
Run Code Online (Sandbox Code Playgroud)

我期望实际上一些mmapsys_brk系统调用直接从操作系统分配内存,但实际上它只是设置了请求页面的读写保护。我的意思是这样的:

mprotect(0x7fa9681ef000, 8192, PROT_READ|PROT_WRITE) = 0
Run Code Online (Sandbox Code Playgroud)

这似乎是分配直接缓冲区比分配堆缓冲区慢的原因,因为每次分配都需要系统调用。

如果我错了,请纠正我,但堆缓冲区分配(如果发生在 TLAB 内)相当于返回一个指向预分配堆内存的指针。

问题:为什么我们不能对直接内存做同样的事情?返回一个指向预分配内存的指针?

java jvm bytebuffer

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