可変メモリ サイズの秘密を明らかにする
変数のメモリ サイズを取得することは、プログラミングにおけるメモリ管理の重要な側面です。 Go では、「unsafe.Sizeof」関数を使用すると、この貴重な情報を明らかにできます。
構文:
func Sizeof(x interface{}) uintptr
使用法:
変数のメモリ サイズを決定するには、変数を引数として渡すだけです。 「安全ではありません。Sizeof」。変数の値が占めるサイズをバイト単位で返します。
import "unsafe" var i int = 1 fmt.Printf("Size of i: %d bytes", unsafe.Sizeof(i))
例:
次のコードは、さまざまなデータのメモリ サイズを取得する方法を示しています。タイプ:
package main import "fmt" import "unsafe" func main() { a := int(123) b := int64(123) c := "foo" d := struct { FieldA float32 FieldB string }{0, "bar"} fmt.Printf("a: %T, %d bytes\n", a, unsafe.Sizeof(a)) fmt.Printf("b: %T, %d bytes\n", b, unsafe.Sizeof(b)) fmt.Printf("c: %T, %d bytes\n", c, unsafe.Sizeof(c)) fmt.Printf("d: %T, %d bytes\n", d, unsafe.Sizeof(d)) }
出力:
a: int, 4 bytes b: int64, 8 bytes c: string, 3 bytes d: struct { FieldA float32; FieldB string }, 16 bytes
注:
「unsafe.Sizeof」を使用する必要があります不適切に使用すると未定義の動作が発生する可能性があるため、慎重に使用してください。一部のプラットフォームでは、「reflect」パッケージと同様に、その使用が制限される場合もあります。このパッケージは、「reflect.TypeOf(variable).Size()」を通じて変数のメモリ サイズを取得するメソッドも提供します。
以上がGo で変数のメモリ サイズを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。