小编Kar*_*ell的帖子

在Java中计算B树的内存使用情况

我已经实现了一个简单的B树,它将longs映射到整数.现在我想使用以下方法估计它的内存使用情况(仅适用于32位JVM):

class BTreeEntry {

    int entrySize;
    long keys[];
    int values[];
    BTreeEntry children[];
    boolean isLeaf;
    ...
    /** @return used bytes */
    long capacity() {
        long cap = keys.length * (8 + 4) + 3 * 12 + 4 + 1;
        if (!isLeaf) {
            cap += children.length * 4;
            for (int i = 0; i < children.length; i++) {
                if (children[i] != null)
                    cap += children[i].capacity();
            }
        }
        return cap;
    }
}
/** @return memory usage in MB */
public …
Run Code Online (Sandbox Code Playgroud)

java jvm memory-management b-tree

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

JSprit中的相关职位

是否有可能在jsprit中处理作业(在本例中为服务)之间的关系?

例如,一个工作必须与一个或多个其他工作同时开始.或者一项工作不得在另一项工作结束前开始(正常顺序).

如果没有,你知道其他可以处理这种限制的java库吗?

谢谢!

java jobs jsprit

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

树遍历.有序,预订,后序

我理解树遍历和实现背后的想法,但这是问题.为什么我们都需要它们?

现在我只知道在解析数学表达式时使用了前序遍历.从维基百科我也读到:

  • 序遍历是特别常见使用一个序遍历上的二叉搜索树,因为这将从底层集合,以根据该设置的二叉查找树(因此得名)比较返回值,.预订遍历
  • 在将值插入新树时预先遍历树是制作二叉搜索树的完整副本的常用方法.也可以使用preorder遍历从表达式树中获取前缀表达式(波兰表示法):预先遍历表达式树.(我已经说过了)

但这些例子相当含糊.任何人都可以更深入地描述这一点.特别是举例.

algorithm tree binary-tree

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

传单的缩放图例

是否有可能(或有插件)在其中一个角落显示当前比例/缩放的图例?我不确定这是否是正确的英文术语所以这里是一个图像:

在此输入图像描述

(google称之为id ='scalecontrol';))

当然它应该只显示较低的缩放级别,否则北部和南部区域的距离将太大.

leaflet

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

Hazelcast客户端线程安全吗?

我在docsjavadocs中找不到这个:我需要为每个线程创建一个客户端,还是由以下创建的客户端:

client = HazelcastClient.newHazelcastClient(cfg);
Run Code Online (Sandbox Code Playgroud)

线程安全?

hazelcast

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

“正确”执行时,PID文件是否仍然存在缺陷?

重新启动服务通常是通过PID文件来实现的-即,将进程ID写入某个文件,并根据该数字停止命令将终止该进程(或在重新启动之前)。

当您考虑它(或者如果您不喜欢它,然后搜索)时,您会发现这是有问题的,因为每个PID都可以重用。想象一下,如果服务器完全重启,则在启动时调用“ ./your-script.sh start”(例如,crontab中的@reboot)。现在,your-script.sh将杀死任意 PID,因为它已在重新启动之前存储了实时的PID 。

我可以想象的一种解决方法是存储其他信息,以便您可以执行'ps -pid | grep',并且仅当此操作返回某些内容时,您才将其杀死。还是在可靠性和/或简单性方面有更好的选择?

#!/bin/bash

function start() {
  nohub java -jar somejar.jar >> file.log 2>&1 &
  PID=$!
  # one could even store the "ps -$PID" information but this makes the
  # killing too specific e.g. if some arguments will be added or similar
  echo "$PID somejar.jar" > $PID_FILE
}

function stop() {
  if [[ -f "$PID_FILE" ]]; then
    PID=$(cut -f1 -d' ' $PID_FILE)
    # now get the second information …
Run Code Online (Sandbox Code Playgroud)

linux bash

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