ホームページ バックエンド開発 PHPチュートリアル 不思議な現象 定数の生成過程

不思議な現象 定数の生成過程

Jun 13, 2016 pm 01:18 PM
dump int memory usage var

奇妙な現象: 定数作成プロセス

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
var_dump( memory_get_usage() );  // int(129100)
var_dump( memory_get_usage() );  // int(129156)  - 很难理解,这里为什么会有内存增加?
var_dump( memory_get_usage() );  // int(129156)
define('hello', 'WORLD');
var_dump( memory_get_usage() );  // int(129156)   - 既然创建了一个常量,就该有内存增加。
$hello = 'WORLD';
var_dump( memory_get_usage() );  // int(129304)
ログイン後にコピー


-----解決策----------- --- -------
これを見てください:
http://www.laruence.com/2011/03/04/1894.html

PHP は C のような低レベル言語とは異なります。PHP 自体は、より高度な言語です。小さなシステムのように
------解決策------------------
私の実行結果は
int(51312)
int(51424)
int(51424)
int(51480)
int(51480)

という議論だと思います。 single ステートメントによって消費されるメモリには意味がありません。メモリ割り当ては実際にはセグメント化されています。つまり、1 バイトのメモリが必要な場合でも、実際の割り当ては、割り当て戦略に応じて 32 バイトまたは 1024 バイトになる場合があります。これは、各割り当てを使用する必要がないためです。変数は通常、1 文字と 1 バイトに基づいておおよそ計算できますが、正確に計算することは困難です。

さらに、var_dump 関数自体が文字列を出力しますが、この文字列にもメモリが必要かどうかは内部実装によって異なります。動作中にメモリが増加する場合と、メモリが変更されない場合があるのはなぜですか? 前回割り当てられた追加メモリが十分であるかどうかの問題が原因です。十分であれば、メモリを増やす必要はありません。足りないので、増やします。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ダンプファイルとは何ですか? ダンプファイルとは何ですか? Jan 12, 2024 pm 04:58 PM

ダンプ ファイルは通常、ダンプ ファイルまたはコア ダンプ ファイルとも呼ばれるバイナリ ファイルを指します。この種類のファイルは、コンピュータ システムが重大なエラーや異常な状況に遭遇したときに生成され、システムやアプリケーションのステータス、スタック、レジスタ、メモリ イメージ、ログなどの情報を保存するために使用されます。

PHPでint型をbytesに変換する方法を詳しく解説 PHPでint型をbytesに変換する方法を詳しく解説 Mar 06, 2024 pm 06:18 PM

PHPでint型をbyte型に変換する方法を詳しく解説 PHPでは、ネットワークデータ送信やファイル処理、暗号化アルゴリズムなどを扱う場合など、整数型(int)をバイト型(Byte)に変換する必要が生じることがよくあります。 。この記事では、int型をbyte型に変換する方法と具体的なコード例を詳しく紹介します。 1. int 型と byte の関係 コンピュータ分野では、基本データ型 int は整数を表しますが、byte (バイト) はコンピュータの記憶単位で、通常は 8 ビットのバイナリデータです

デスクトップ PC 用 CAMM2: MSI がゲームタワー向けの新しい RAM 規格の利点を説明 デスクトップ PC 用 CAMM2: MSI がゲームタワー向けの新しい RAM 規格の利点を説明 Aug 17, 2024 pm 06:47 PM

ラップトップ用の最初の LPCAMM2 モジュールはすでに出荷されており、将来的にはデスクトップのメインボードにも CAMM2 が搭載される予定です。 CAMM2 と LPCAMM2 には互換性がなく、デスクトップ PC であっても注意が必要です

double型変数をint型に変換するC++プログラム double型変数をint型に変換するC++プログラム Aug 25, 2023 pm 08:25 PM

C++ では、int 型の変数は正または負の整数値のみを保持でき、10 進数値を保持できません。この目的に使用できる float 値と double 値があります。 double データ型は、小数点以下 7 桁までの小数を格納するために作成されました。整数から double データ型への変換は、コンパイラによって自動的に実行することも (「暗黙的」変換と呼ばれます)、プログラマがコンパイラに明示的に要求することもできます (「明示的」変換と呼ばれます)。次のセクションでは、さまざまな変換方法について説明します。暗黙的な変換 コンパイラは暗黙的な型変換を自動的に実行します。これを実現するには、浮動小数点型と整数型の 2 つの変数が必要です。浮動小数点値または変数を整数変数に代入するだけでは、コンパイラが他のすべてのことを処理します。

int32の値の範囲はどれくらいですか? int32の値の範囲はどれくらいですか? Aug 11, 2023 pm 02:53 PM

int32 の値の範囲は、-2 の 31 乗から 2 の 31 乗 - 1、つまり -2147483648 ~ 2147483647 です。 int32 は符号付き整数型です。つまり、正の数、負の数、ゼロを表現できます。1 ビットを符号ビットの表現に使用し、残りの 31 ビットは数値の表現に使用されます。符号ビットを表すために 1 ビットが使用されるため、int32 の有効ビット数は 31 です。

Go言語でintを文字列型に変換する方法 Go言語でintを文字列型に変換する方法 Jun 04, 2021 pm 03:56 PM

変換方法: 1. Itoa() 関数を使用し、構文 "strconv.Itoa(num)" 2. FormatInt() 関数を使用して、int 型データを指定した基数に変換し、文字列の形式で返します。構文「strconv .FormatInt(num,10)」。

MySQL ストレージ エンジンの選択の比較: InnoDB、MyISAM、およびメモリのパフォーマンス インデックスの評価 MySQL ストレージ エンジンの選択の比較: InnoDB、MyISAM、およびメモリのパフォーマンス インデックスの評価 Jul 26, 2023 am 11:25 AM

MySQL ストレージ エンジンの選択の比較: InnoDB、MyISAM、およびメモリのパフォーマンス インデックスの評価 はじめに: MySQL データベースでは、ストレージ エンジンの選択がシステム パフォーマンスとデータの整合性において重要な役割を果たします。 MySQL はさまざまなストレージ エンジンを提供します。最も一般的に使用されるエンジンには、InnoDB、MyISAM、Memory などがあります。この記事では、これら 3 つのストレージ エンジンのパフォーマンス指標を評価し、コード例を通じて比較します。 1. InnoDB エンジン InnoDB は私のものです

int は何バイトを占めますか? int は何バイトを占めますか? Jan 22, 2024 pm 03:14 PM

int 型が占めるバイト数は、プログラミング言語やハードウェア プラットフォームによって異なる場合があります。詳細な紹介: 1. C 言語では、int 型は通常 2 バイトまたは 4 バイトを占有します。 32 ビット システムでは、int 型は 4 バイトを占有しますが、16 ビット システムでは、int 型は 2 バイトを占有します。 64 ビット システムでは、int 型は 8 バイトを占有する可能性があります; 2. Java では、int 型は通常 4 バイトを占有しますが、Python では int 型にはバイト制限がなく、自動的に調整できます。

See all articles