我正在尝试构建一个使用任何垃圾/随机内容编码的不透明二进制 Blob 64 位,还尝试以这种方式制作它,以便我可以指定要生成的数据 blob 的大小(以 Kb 为单位) .
其目的是对支持 blob 数据类型(例如 C*)的数据库应用程序的写入吞吐量进行基准测试。 blob 不需要是唯一的,因此可以构造一次并重复使用它,以避免由于 GC 和对象创建而导致客户端延迟。</p>
我天真地尝试使用ByteBuffer.allocateDirect(bSize)
,认为我可以使用它从内存中拾取的任何垃圾,但我怀疑这种方法是否有效。
关于如何实现这一目标有什么建议吗?
最佳答案
如果您使用的是 Linux,这个命令行小技巧可以快速创建虚拟文件:
dd if=/dev/zero of=FileName bs=1024 count=1000
计数 * bs
= 文件大小
然后:
String sql = "INSERT INTO table (blob) VALUES (?)";
PreparedStatement stmt = conn.prepareStatement(sql);
File blob = new File("path_to_FileName");
FileInputStream fis = new FileInputStream(blob);
stmt.setBinaryStream(1, fis, (int) blob.length());
stmt.execute();
关于java - 如何在java中生成特定大小的二进制blob对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001677/