ホームページ > バックエンド開発 > Golang > Go で変数のメモリ サイズを確認するにはどうすればよいですか?

Go で変数のメモリ サイズを確認するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-22 08:38:10
オリジナル
948 人が閲覧しました

How Can I Determine the Memory Size of Variables in Go?

可変メモリ サイズの秘密を明らかにする

変数のメモリ サイズを取得することは、プログラミングにおけるメモリ管理の重要な側面です。 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート