- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中com.yahoo.memory.WritableMemory.allocate()
方法的一些代码示例,展示了WritableMemory.allocate()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WritableMemory.allocate()
方法的具体详情如下:
包路径:com.yahoo.memory.WritableMemory
类名称:WritableMemory
方法名:allocate
[英]Creates on-heap WritableMemory with the given capacity and the native byte order. If the given capacityBytes is zero, backing storage, byte order and read-only status of the returned WritableMemory object are unspecified.
[中]创建具有给定容量和本机字节顺序的堆上可写内存。如果给定的capacityBytes为零,则未指定返回的WritableMemory对象的备份存储、字节顺序和只读状态。
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkStreamErrors2() {
WritableMemory wmem = WritableMemory.allocate(4 * 10);
int[] svStream = { 1 };
int[] wStream = { 2 };
try {
putPinnedSlidingMerged(wmem, 4, 0, 1, 1, 1, 0, (short) 0, svStream, wStream);
fail();
} catch (SketchesStateException e) { }
assertTrue(PreambleUtil.isCompressed(wmem));
}
代码示例来源:origin: DataSketches/sketches-core
/**
* Return this sketch as a compressed byte array.
* @return this sketch as a compressed byte array.
*/
public byte[] toByteArray() {
final CompressedState state = CompressedState.compress(this);
final long cap = state.getRequiredSerializedBytes();
final WritableMemory wmem = WritableMemory.allocate((int) cap);
state.exportToMemory(wmem);
return (byte[]) wmem.getArray();
}
代码示例来源:origin: DataSketches/sketches-core
@SuppressWarnings("unused")
@Test
public void checkMemoryNotLargeEnough() {
int bytes = getMaxUpdatableSerializationBytes(8, TgtHllType.HLL_8);
WritableMemory wmem = WritableMemory.allocate(bytes -1);
try {
HllSketch sk = new HllSketch(8, TgtHllType.HLL_8, wmem);
fail();
} catch (SketchesArgumentException e) {
//OK
}
}
代码示例来源:origin: DataSketches/sketches-core
private static Union newUnion(int lgK) {
int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgK, TgtHllType.HLL_8);
WritableMemory wmem = WritableMemory.allocate(bytes);
return new Union(lgK, wmem);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkDirectGetCouponIntArr() {
int lgK = 8;
TgtHllType type = TgtHllType.HLL_8;
int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgK, type);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(lgK, type, wmem);
AbstractCoupons absCoup = (AbstractCoupons)sk.hllSketchImpl;
assertNull(absCoup.getCouponIntArr());
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkDirectCompactSingleItemSketch() {
UpdateSketch sk = Sketches.updateSketchBuilder().build();
CompactSketch csk = sk.compact(true, WritableMemory.allocate(16));
assertEquals(csk.getCurrentBytes(true), 8);
sk.update(1);
csk = sk.compact(true, WritableMemory.allocate(16));
assertEquals(csk.getCurrentBytes(true), 16);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkStreamErrors() {
WritableMemory wmem = WritableMemory.allocate(4 * 10);
putEmptyMerged(wmem, (byte) 12, defaultSeedHash);
try { getSvStreamOffset(wmem); fail(); } catch (SketchesArgumentException e) { }
wmem.putByte(5, (byte) (7 << 2));
try { getSvStreamOffset(wmem); fail(); } catch (SketchesStateException e) { }
wmem.putByte(5, (byte) 0);
try { getWStreamOffset(wmem); fail(); } catch (SketchesArgumentException e) { }
wmem.putByte(5, (byte) (7 << 2));
try { getWStreamOffset(wmem); fail(); } catch (SketchesStateException e) { }
}
代码示例来源:origin: DataSketches/sketches-core
@SuppressWarnings("unused")
@Test
public void checkExtractFlags() {
int bytes = HllSketch.getMaxUpdatableSerializationBytes(4, TgtHllType.HLL_4);
WritableMemory wmem = WritableMemory.allocate(bytes);
Object memObj = wmem.getArray();
long memAdd = wmem.getCumulativeOffset(0L);
HllSketch sk = new HllSketch(4, TgtHllType.HLL_4, wmem);
int flags = extractFlags(wmem);
assertEquals(flags, EMPTY_FLAG_MASK);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkEmptyMemory() {
WritableMemory wmem = WritableMemory.allocate(4 * 10);
wmem.putByte(2, (byte) 16); //legal Family
wmem.putByte(5, (byte) (1 << 2)); //select NONE
println(CpcSketch.toString(wmem, false));
}
代码示例来源:origin: DataSketches/sketches-core
private Union buildUnion(int lgMaxK, int n) {
final int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgMaxK, TgtHllType.HLL_8);
WritableMemory wmem = WritableMemory.allocate(bytes);
Union u = new Union(lgMaxK, wmem);
for (int i = 0; i < n; i++) { u.update(i + v); }
v += n;
return u;
}
代码示例来源:origin: DataSketches/sketches-core
private HllSketch build(int lgK, TgtHllType tgtHllType, int n) {
final int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgK, tgtHllType);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(lgK, tgtHllType, wmem);
for (int i = 0; i < n; i++) { sk.update(i + v); }
v += n;
return sk;
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void offsetChecks() {
long seed = 12345;
int blocks = 6;
int cap = blocks * 16;
long[] hash1 = new long[2];
long[] hash2;
WritableMemory wmem = WritableMemory.allocate(cap);
for (int i = 0; i < cap; i++) { wmem.putByte(i, (byte)(-128 + i)); }
for (int offset = 0; offset < 16; offset++) {
int arrLen = cap - offset;
hash1 = MurmurHash3v2.hash(wmem, offset, arrLen, seed, hash1);
byte[] byteArr2 = new byte[arrLen];
wmem.getByteArray(offset, byteArr2, 0, arrLen);
hash2 = MurmurHash3.hash(byteArr2, seed);
assertEquals(hash1, hash2);
}
}
代码示例来源:origin: DataSketches/sketches-core
private static void noWriteAccess(TgtHllType tgtHllType, int n) {
int lgConfigK = 8;
int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgConfigK, tgtHllType);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(lgConfigK, tgtHllType, wmem);
for (int i = 0; i < n; i++) { sk.update(i); }
HllSketch sk2 = HllSketch.wrap(wmem);
try {
sk2.update(1);
fail();
} catch (SketchesArgumentException e) {
//expected
}
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkToCompactByteArr() {
int bytes = HllSketch.getMaxUpdatableSerializationBytes(4, TgtHllType.HLL_4);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(4, TgtHllType.HLL_4, wmem);
for (int i = 0; i < 8; i++) { sk.update(i); }
byte[] compByteArr = sk.toCompactByteArray();
Memory compMem = Memory.wrap(compByteArr);
HllSketch sk2 = HllSketch.wrap(compMem);
byte[] compByteArr2 = sk2.toCompactByteArray();
assertEquals(compByteArr2, compByteArr);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkHeapifyGetLgCouponArrInts() {
int lgK = 8;
TgtHllType type = TgtHllType.HLL_8;
int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgK, type);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(lgK, type, wmem);
for (int i = 0; i < 8; i++) { sk.update(i); }
assertEquals(sk.getCurMode(), CurMode.SET);
double est1 = sk.getEstimate();
wmem.putByte(LG_ARR_BYTE, (byte) 0); //corrupt to 0
HllSketch sk2 = HllSketch.heapify(wmem);
double est2 = sk2.getEstimate();
assertEquals(est2, est1, 0.0);
//println(sk2.toString(true, true, true, true));
//println(PreambleUtil.toString(wmem));
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkToUpdatableByteArr() {
int bytes = HllSketch.getMaxUpdatableSerializationBytes(4, TgtHllType.HLL_4);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = new HllSketch(4, TgtHllType.HLL_4, wmem);
for (int i = 0; i < 8; i++) { sk.update(i); }
byte[] udByteArr = sk.toUpdatableByteArray();
byte[] compByteArr = sk.toCompactByteArray();
Memory compMem = Memory.wrap(compByteArr);
HllSketch sk2 = HllSketch.wrap(compMem);
byte[] udByteArr2 = sk2.toUpdatableByteArray();
assertEquals(udByteArr2, udByteArr);
}
代码示例来源:origin: DataSketches/sketches-core
@Test
public void checkCopies() {
runCheckCopy(14, HLL_4, null);
runCheckCopy(8, HLL_6, null);
runCheckCopy(8, HLL_8, null);
int bytes = getMaxUpdatableSerializationBytes(14, TgtHllType.HLL_8);
WritableMemory wmem = WritableMemory.allocate(bytes);
runCheckCopy(14, HLL_4, wmem);
runCheckCopy(8, HLL_6, wmem);
runCheckCopy(8, HLL_8, wmem);
}
代码示例来源:origin: DataSketches/sketches-core
public void setUp() {
final int maxSharedUpdateBytes = Sketch.getMaxUpdateSketchBytes(sharedK);
wmem = WritableMemory.allocate(maxSharedUpdateBytes); //on-heap
//must build shared first
sharedSketch = builder.build(wmem);
localSketch = builder.build();
seqSketch = Sketches.updateSketchBuilder().setNominalEntries(sharedK).build();
}
代码示例来源:origin: DataSketches/sketches-core
@Test(expectedExceptions = SketchesArgumentException.class)
public void checkCompactFlagCorruption() {
int k = 1 << 12;
int bytes = Sketch.getMaxUpdateSketchBytes(k);
WritableMemory wmem1 = WritableMemory.allocate(bytes);
UpdateSketch sk = Sketches.updateSketchBuilder().setNominalEntries(k).build(wmem1);
for (int i = 0; i < k; i++) { sk.update(i); }
sk.compact(true, wmem1); //corrupt the wmem1 to be a compact sketch
Union union = SetOperation.builder().buildUnion();
union.update(sk); //update the union with the UpdateSketch object
CompactSketch csk1 = union.getResult();
println(""+csk1.getEstimate());
}
代码示例来源:origin: DataSketches/sketches-core
private static void checkIterator(boolean direct) {
int lgConfigK = 8;
TgtHllType tgtHllType = TgtHllType.HLL_4;
int bytes = HllSketch.getMaxUpdatableSerializationBytes(lgConfigK, tgtHllType);
WritableMemory wmem = WritableMemory.allocate(bytes);
HllSketch sk = (direct) ? new HllSketch(lgConfigK, tgtHllType, wmem) : new HllSketch(8);
for (int i = 0; i < 7; i++) { sk.update(i); }
PairIterator itr = sk.iterator();
println(itr.getHeader());
while (itr.nextAll()) {
int key = itr.getKey();
int val = itr.getValue();
int idx = itr.getIndex();
int slot = itr.getSlot();
println("Idx: " + idx + ", Key: " + key + ", Val: " + val + ", Slot: " + slot);
}
}
N3485 20.6.9.1 [allocator.members]/1 说: Calls to these functions that allocate or deallocate a parti
我想编写一个调用 createHook() 的自定义分配器在对象构造和对称之后 destroyHook()就在对象销毁之前。我以这种方式使用我的分配器: class Object {}; class
我正在用 C++ 重新创建一个链表,并且在重载 += 运算符时得到了一个错误的指针。我想我只是以错误的方式使用了分配器,但我可能是错的。 这里是上下文: void MyLinkedList::oper
Allocator concept和 std::allocator_traits没有说明 allocate 是否会抛出。 所以当我使用分配器编写容器时,如何知道是检查返回类型还是使用 catch? 最
C++20 删除了 construct()和 destruct()成员(member)来自 std::allocator .我应该如何构造通过 std::allocator::allocate() 分
这个问题听起来可能相当初级,但这是我与另一位合作开发人员的辩论。 我注意在可能的地方分配堆栈,而不是堆分配它们。他在和我说话并看着我的肩膀并评论说没有必要,因为他们在表现方面是一样的。 我一直认为堆栈
这个问题听起来可能相当初级,但这是我与另一位合作开发者的争论。 我一直在尽可能地堆栈分配东西,而不是堆分配它们。他一边跟我说话,一边看着我,并评论说没有必要,因为它们在性能方面是相同的。 我一直认为堆
在 Java 程序中,当需要分配数千个相似大小的对象时,最好(在我看来)有一个“池”(这是一个单一的分配),其中包含可以从中提取的保留项目需要的时候。这个单一的大分配不会像数千个较小的分配那样使堆碎片
我正在尝试使用 TBB 来提升使用 OpenCV 的计算机视觉项目的性能。这是代码中给出访问冲突的部分。 #include #include "opencv2/objdetect/objdetect
我对一个问题有疑问,特别是关于 this 的问题回答。 有一部分留给读者作为练习(这本身不是问题),特别是 Jonathan Wakely(答案的作者)说: This code asserts tha
Allocator concept和 std::allocator_traits不要说当分配失败时 allocate 会做什么——它会返回 nullptr 还是抛出异常? 当我使用标准分配器 API
我有充分的理由不应该做这样的事情吗?示例: 我有一个类(class)MyClass。在那里我有这个实现: - (id)copyWithZone:(NSZone*)zone { MyClass
相关但不重复:请参阅此答案的底部,在单击此问题下方的“关闭”按钮之前,我解决了您可能想要声明的重复项。 自动生成 ROS (Robot Operating System) message C++ 头文
据我所知std::allocator::construct在旧版本的 C++ 上仅需要两个参数;第一个是指向原始的、未构造的内存的指针,我们要在其中构造 T 类型的对象。第二个是用于初始化该对象的元素
40个不同的分配函数给40个不同的调用点 void f00(size_t sz) { void* ptr = malloc(sz); free(ptr); } void f01(size_t sz)
我在使用 RenderScript 时一直遇到内存管理问题,所以我认为由于 Allocation.createFromBitmap()/createTyped() 消耗内存,Allocation.de
我正在尝试使用 valgrind 跟踪段错误。我从 valgrind 收到以下消息: ==3683== Conditional jump or move depends on uninitialise
实际上,我正在尝试创建一个包含 n 个多媒体文件(包括图像和视频)的应用程序。我的应用程序大小约为 34MB,我的 Assets 大小约为 60mb。当我在普通设备上加载应用程序时,我们没有遇到任何问
STL 容器有一个模板参数可以选择自定义分配器。花了一段时间,但我想我明白它是如何工作的。不知何故,它并不是很好,因为给定的分配器类型没有直接使用,而是反弹到另一种类型的分配器。我终于可以使用它了。
new int[0]在 C++ 中是允许的,但 std::allocator().allocate(0)定义好? 更一般地说,所有分配器都必须接受 0作为参数分配? 编辑: 阅读答案后,我测试了 Vi
我是一名优秀的程序员,十分优秀!