2

我遇到了 Java 堆大小问题,所以想检查 cassandra 中列的大小。我正在将许多列读入内存中的 Java。

感谢您的帮助

4

1 回答 1

0

如果不检索列并直接检查大小,我认为没有任何内置方法可以做到这一点。

当最初写入值时,您需要将每列的大小存储在另一列中。

您可以在同一行中使用名称相似的列,因此您最终会得到与现在相同的行数,但每行的列数是原来的两倍)

row :  col1    col1size    col2    col2size
       <data>  <size>      <data>  <size>

或另一行中的同名列,因此您最终会得到两倍的行数,但与现在的列数相同)。

row1       :  col1    col2
              <data>  <data>

row1sizes  :  col1    col2  
              <size>  <size>

更新到地址注释:要在写入之前找到列的大小,客户端可以将对象序列化为字节数组,然后检查数组的大小:

    String s = "foo";
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos);
    oos.writeObject(s);
    System.out.println("Size="+baos.toByteArray().length);
于 2012-09-29T22:32:36.643 回答