2017-12-06 29 views
2

私は答えが決してないと思っています。 そのようなメモリは明示的に解放する必要があります。例えばmallocガベージによって割り当てられたメモリはいつ集められますか?

は私が書いたかの場合:

julia> x = Libc.malloc(1_000_000) 
Ptr{Void} @0x0000000002f6bd80 

julia> x = nothing 

は、私はちょうど〜1MBメモリをリークしていますか?

しかし、私は100%ではないと確信しています。 ドキュメントにはまったく言及していないためです。 C標準ライブラリから

help?> Libc.malloc(3)
malloc(size::Integer) -> Ptr{Void}

コールのmalloc。

+0

あたかもそこに1MBのメモリが漏れているように見えます:p –

答えて

6

はい、正しくあります。

Juliaは、低レベルでCとシームレスに相互運用できるように設計されているため、Cラッパーライブラリを使用すると、Cセマンティクスとガーベッジコレクションはありません。

Libc.mallocのドキュメントはCを教えるために書かれていませんが、混乱するような場合はLibc.freeに言及するように改善することができます。

関連する問題