open()
设置由 io.h
定义的内存缓冲区:IOS_BUFSIZE
= 32kb(之前为 128kb)
是否可以更改该值( future open
kwargs?)或使其适应磁盘 block 大小(在 GPFS 等中通常非常大)?
最佳答案
据我所知,目前无法从 Julia 更改此设置(除非在 Julia 中重新实现 ios.c:_buf_realloc
)。通过 PR 将此功能添加到 Julia 中非常容易。例如将类似以下内容添加到 src/support/ios.c
:
int ios_growbuf(ios_t *s, size_t sz)
{
return _buf_realloc(s, sz) == NULL;
}
然后像base/iostream.jl
中的内容一样:
function sizehint!(s::IOStream, sz::Integer)
ccall(:ios_growbuf, Cint, (Ptr{Cvoid}, Csize_t), s.ios, sz) != 0 &&
throw(OutOfMemoryError())
end
关于julia - 我们可以在 Julia 中自定义文件打开缓冲区大小吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65200699/