• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ObjectSizes类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.cassandra.utils.ObjectSizes的典型用法代码示例。如果您正苦于以下问题:Java ObjectSizes类的具体用法?Java ObjectSizes怎么用?Java ObjectSizes使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ObjectSizes类属于org.apache.cassandra.utils包,在下文中一共展示了ObjectSizes类的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: buildInternal

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
/**
 * As build(), except:
 * @param size    < 0 if size is unknown
 */
private static <C, K extends C, V extends C> Object[] buildInternal(Iterable<K> source, int size, UpdateFunction<K, V> updateF)
{
    if ((size >= 0) & (size < FAN_FACTOR))
    {
        if (size == 0)
            return EMPTY_LEAF;
        // pad to odd length to match contract that all leaf nodes are odd
        V[] values = (V[]) new Object[size | 1];
        {
            int i = 0;
            for (K k : source)
                values[i++] = updateF.apply(k);
        }
        if (updateF != UpdateFunction.noOp())
            updateF.allocated(ObjectSizes.sizeOfArray(values));
        return values;
    }

    TreeBuilder builder = TreeBuilder.newInstance();
    Object[] btree = builder.build(source, updateF, size);

    return btree;
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:28,代码来源:BTree.java


示例2: buildFromRange

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
private Object[] buildFromRange(int offset, int keyLength, boolean isLeaf, boolean isExtra)
{
    // if keyLength is 0, we didn't copy anything from the original, which means we didn't
    // modify any of the range owned by it, so can simply return it as is
    if (keyLength == 0)
        return copyFrom;

    Object[] a;
    if (isLeaf)
    {
        a = new Object[keyLength + (keyLength & 1)];
        System.arraycopy(buildKeys, offset, a, 0, keyLength);
    }
    else
    {
        a = new Object[1 + (keyLength * 2)];
        System.arraycopy(buildKeys, offset, a, 0, keyLength);
        System.arraycopy(buildChildren, offset, a, keyLength, keyLength + 1);
    }
    if (isExtra)
        updateFunction.allocated(ObjectSizes.sizeOfArray(a));
    else if (a.length != copyFrom.length)
        updateFunction.allocated(ObjectSizes.sizeOfArray(a) -
                                 (copyFrom.length == 0 ? 0 : ObjectSizes.sizeOfArray(copyFrom)));
    return a;
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:NodeBuilder.java


示例3: buildInternal

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
/**
 * As build(), except:
 * @param size    < 0 if size is unknown
 */
private static <C, K extends C, V extends C> Object[] buildInternal(Iterable<K> source, int size, UpdateFunction<K, V> updateF)
{
    if ((size >= 0) & (size < FAN_FACTOR))
    {
        if (size == 0)
            return EMPTY_LEAF;
        // pad to odd length to match contract that all leaf nodes are odd
        V[] values = (V[]) new Object[size | 1];
        {
            int i = 0;
            for (K k : source)
                values[i++] = updateF.apply(k);
        }
        updateF.allocated(ObjectSizes.sizeOfArray(values));
        return values;
    }

    Queue<TreeBuilder> queue = modifier.get();
    TreeBuilder builder = queue.poll();
    if (builder == null)
        builder = new TreeBuilder();
    Object[] btree = builder.build(source, updateF, size);
    queue.add(builder);
    return btree;
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:30,代码来源:BTree.java


示例4: estimateRowOverhead

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
private static int estimateRowOverhead(final int count)
{
    // calculate row overhead
    try (final OpOrder.Group group = new OpOrder().start())
    {
        int rowOverhead;
        MemtableAllocator allocator = MEMORY_POOL.newAllocator();
        ConcurrentNavigableMap<PartitionPosition, Object> partitions = new ConcurrentSkipListMap<>();
        final Object val = new Object();
        for (int i = 0 ; i < count ; i++)
            partitions.put(allocator.clone(new BufferDecoratedKey(new LongToken(i), ByteBufferUtil.EMPTY_BYTE_BUFFER), group), val);
        double avgSize = ObjectSizes.measureDeep(partitions) / (double) count;
        rowOverhead = (int) ((avgSize - Math.floor(avgSize)) < 0.05 ? Math.floor(avgSize) : Math.ceil(avgSize));
        rowOverhead -= ObjectSizes.measureDeep(new LongToken(0));
        rowOverhead += AtomicBTreePartition.EMPTY_SIZE;
        allocator.setDiscarding();
        allocator.setDiscarded();
        return rowOverhead;
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:21,代码来源:Memtable.java


示例5: sizeOfStructureOnHeap

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
public static long sizeOfStructureOnHeap(Object[] tree)
{
    long size = ObjectSizes.sizeOfArray(tree);
    if (isLeaf(tree))
        return size;
    for (int i = getChildStart(tree) ; i < getChildEnd(tree) ; i++)
        size += sizeOfStructureOnHeap((Object[]) tree[i]);
    return size;
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:10,代码来源:BTree.java


示例6: buildFromRange

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
private Object[] buildFromRange(int offset, int keyLength, boolean isLeaf, boolean isExtra)
{
    // if keyLength is 0, we didn't copy anything from the original, which means we didn't
    // modify any of the range owned by it, so can simply return it as is
    if (keyLength == 0)
        return copyFrom;

    Object[] a;
    if (isLeaf)
    {
        a = new Object[keyLength | 1];
        System.arraycopy(buildKeys, offset, a, 0, keyLength);
    }
    else
    {
        a = new Object[2 + (keyLength * 2)];
        System.arraycopy(buildKeys, offset, a, 0, keyLength);
        System.arraycopy(buildChildren, offset, a, keyLength, keyLength + 1);

        // calculate the indexOffsets of each key in this node, within the sub-tree rooted at this node
        int[] indexOffsets = new int[keyLength + 1];
        int size = BTree.size((Object[]) a[keyLength]);
        for (int i = 0 ; i < keyLength ; i++)
        {
            indexOffsets[i] = size;
            size += 1 + BTree.size((Object[]) a[keyLength + 1 + i]);
        }
        indexOffsets[keyLength] = size;
        a[a.length - 1] = indexOffsets;
    }
    if (isExtra)
        updateFunction.allocated(ObjectSizes.sizeOfArray(a));
    else if (a.length != copyFrom.length)
        updateFunction.allocated(ObjectSizes.sizeOfArray(a) -
                                 (copyFrom.length == 0 ? 0 : ObjectSizes.sizeOfArray(copyFrom)));
    return a;
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:38,代码来源:NodeBuilder.java


示例7: unsharedHeapSize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Override
public long unsharedHeapSize()
{
    return EMPTY_SIZE
            + boundaryHeapSize
            + ObjectSizes.sizeOfArray(starts)
            + ObjectSizes.sizeOfArray(ends)
            + ObjectSizes.sizeOfArray(markedAts)
            + ObjectSizes.sizeOfArray(delTimes);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:11,代码来源:RangeTombstoneList.java


示例8: unsharedHeapSize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Override
public long unsharedHeapSize()
{
    long entrySize = 0;
    for (IndexInfo idx : columnsIndex)
        entrySize += idx.unsharedHeapSize();
    return BASE_SIZE
        + entrySize
        + ObjectSizes.sizeOfReferenceArray(columnsIndex.length);
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:11,代码来源:RowIndexEntry.java


示例9: unsharedHeapSizeExcludingData

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
public long unsharedHeapSizeExcludingData()
{
    long heapSize = EMPTY_SIZE + ObjectSizes.sizeOfArray(cells);
    // TODO: this can be turned into a simple multiplication, at least while we have only one Cell implementation
    for (Cell cell : this)
        heapSize += cell.unsharedHeapSizeExcludingData();
    return heapSize;
}
 
开发者ID:Netflix,项目名称:sstable-adaptor,代码行数:9,代码来源:ComplexColumnData.java


示例10: build

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
/**
 * Creates a BTree containing all of the objects in the provided collection
 *
 * @param source     the items to build the tree with
 * @param comparator the comparator that defines the ordering over the items in the tree
 * @param sorted     if false, the collection will be copied and sorted to facilitate construction
 * @param <V>
 * @return
 */
public static <V> Object[] build(Iterable<V> source, int size, Comparator<V> comparator, boolean sorted, UpdateFunction<V> updateF)
{
    if (size < FAN_FACTOR)
    {
        // pad to even length to match contract that all leaf nodes are even
        V[] values = (V[]) new Object[size + (size & 1)];
        {
            int i = 0;
            for (V v : source)
                values[i++] = v;
        }

        // inline sorting since we're already calling toArray
        if (!sorted)
            Arrays.sort(values, 0, size, comparator);

        // if updateF is specified
        if (updateF != null)
        {
            for (int i = 0 ; i < size ; i++)
                values[i] = updateF.apply(values[i]);
            updateF.allocated(ObjectSizes.sizeOfArray(values));
        }
        return values;
    }

    if (!sorted)
        source = sorted(source, comparator, size);

    Queue<Builder> queue = modifier.get();
    Builder builder = queue.poll();
    if (builder == null)
        builder = new Builder();
    Object[] btree = builder.build(source, updateF, size);
    queue.add(builder);
    return btree;
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:47,代码来源:BTree.java


示例11: unsharedHeapSize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Override
public long unsharedHeapSize()
{
    long entrySize = 0;
    for (IndexHelper.IndexInfo idx : columnsIndex)
        entrySize += idx.unsharedHeapSize();

    return BASE_SIZE
           + entrySize
           + deletionTime.unsharedHeapSize()
           + ObjectSizes.sizeOfReferenceArray(columnsIndex.size());
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:13,代码来源:RowIndexEntry.java


示例12: memorySize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Override
public long memorySize()
{
    long entrySize = 0;
    for (IndexHelper.IndexInfo idx : columnsIndex)
        entrySize += idx.memorySize();

    return ObjectSizes.getSuperClassFieldSize(TypeSizes.NATIVE.sizeof(position))
           + ObjectSizes.getFieldSize(// deletionTime
                                      ObjectSizes.getReferenceSize() +
                                      // columnsIndex
                                      ObjectSizes.getReferenceSize())
           + deletionTime.memorySize()
           + ObjectSizes.getArraySize(columnsIndex.size(), ObjectSizes.getReferenceSize()) + entrySize + 4;
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:16,代码来源:RowIndexEntry.java


示例13: memorySize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
public long memorySize()
{
    return ObjectSizes.getFieldSize(// cfId
                                    ObjectSizes.getReferenceSize() +
                                    // key
                                    ObjectSizes.getReferenceSize())
           + ObjectSizes.getArraySize(key);
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:9,代码来源:RowCacheKey.java


示例14: memorySize

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
public long memorySize()
{
    return ObjectSizes.getFieldSize(// desc
                                    ObjectSizes.getReferenceSize() +
                                    // key
                                    ObjectSizes.getReferenceSize())
           + ObjectSizes.getArraySize(key);
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:9,代码来源:KeyCacheKey.java


示例15: testArraySizes

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Test
public void testArraySizes()
{
    long size = ObjectSizes.getArraySize(0, 1);
    long size2 = meter.measureDeep(new byte[0]);
    Assert.assertEquals(size, size2);
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:8,代码来源:ObjectSizeTest.java


示例16: testBiggerArraySizes

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Test
public void testBiggerArraySizes()
{
    long size = ObjectSizes.getArraySize(0, 1);
    long size2 = meter.measureDeep(new byte[0]);
    Assert.assertEquals(size, size2);

    size = ObjectSizes.getArraySize(8, 1);
    size2 = meter.measureDeep(new byte[8]);
    Assert.assertEquals(size, size2);
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:12,代码来源:ObjectSizeTest.java


示例17: testMemoryLeak

import org.apache.cassandra.utils.ObjectSizes; //导入依赖的package包/类
@Test
public void testMemoryLeak()
{
    Tidier tidier = new Tidier();
    Ref<Object> ref = new Ref(null, tidier);
    long initialSize = ObjectSizes.measureDeep(ref);
    for (int i = 0 ; i < 1000 ; i++)
        ref.ref().release();
    long finalSize = ObjectSizes.measureDeep(ref);
    if (finalSize > initialSize * 2)
        throw new AssertionError();
    ref.release();
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:14,代码来源:RefCountedTest.java



注:本文中的org.apache.cassandra.utils.ObjectSizes类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java WritingConverter类代码示例发布时间:2022-05-22
下一篇:
Java ForwardValueEntry类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap