私はインタビューに出席したとき、インタビュアーは私にこの質問をしました。どのメモリがヒープ、スタックなどを使っているのですか?私はそれをgoogledしましたが、私は明確な答えを得ていませんでした。
答えて
$_POST
の値は、php_auto_globals_create_post()
の内部に作成され、を参照するための方法です。PG(http_globals)[TRACK_VARS_POST]
で利用できるようになりました。
前述http_globals
の定義は、それが(アレイもzval
容器内に格納されている)等zval *
要素、各$_POST
に対して1つ、$_GET
、$_COOKIE
の配列のことを教えてくれる。従って答えはある、
malloc()
関数はヒープ上にメモリを割り当てる:zval
を割り当てる
は、次の機能を呼び出す、ALLOC_ZVAL()
を介して行われヒープ。
あなたがC
とタグ付けしているので、それから始めましょう。
Cランタイムでは、グローバル変数は2つの場所のいずれかに格納されます。データセグメントまたはBSSセグメントを含む。 特定の変数がどの変数に属しているかを判断する方法は、それが初期化されているかどうかです。
初期化グローバル(および静的)変数は、データセグメントの内側に行きます。
初期化されていないグローバル(および静的)変数は BSSセグメントの内側に行きます。
視覚的に、全体のランタイムは次のようになります。スタックと実行時に作成されているヒープ、上の変数とは異なり
_______
| Text |
|_______|
| Data | <-- Initialized globals/statics
|_______|
| BSS | <-- Uninitialized globals/statics (basically a bunch of 0s)
|_______|
| |
| Stack |
|_______|
| |
| Heap |
|_______|
、グローバル変数は、あなたの一部として存在してプログラムの実行可能イメージファイル(a.out
,foobar.exe
)。
ありがとう、今私はそれのいくつかのアイデアを得た。しかし、まだ私は彼らがPHPで管理されているように疑問を抱いています。 – Pramod
- 1. メソッドローカル変数はどこに保存されていますか?
- 2. 変数はどこに保存されていますか?
- 3. pythonグローバル変数が保存されていませんグローバル
- 4. Pythonの変数はどこに保存されていますか?
- 5. ページ保護された変数はどこに保存されますか?
- 6. DLLのグローバル変数はどこに格納されていますか?
- 7. ロケールのリソースはどこに保存されていますか?
- 8. Jcommentsのデータはどこに保存されていますか?
- 9. ServiceWorkerのデータはどこに保存されていますか?
- 10. ByteArrayのデータはどこに保存されていますか?
- 11. ネイティブアンドロイドブラウザのクッキーはどこに保存されていますか?
- 12. gdbのブレークポイントはどこに保存されていますか?
- 13. BigQueryのデータはどこに保存されていますか?
- 14. svnのデフォルトコミットメッセージはどこに保存されていますか?
- 15. Magentoのパスワードはどこに保存されていますか?
- 16. Djangoのユーザーモデルフィールドはどこに保存されていますか?
- 17. グローバルlet変数はどこに格納されていますか?
- 18. IPB4 - グループ名はどこに保存されていますか?
- 19. CloudWatchログデータはどこに保存されていますか?
- 20. コアダンプファイルはどこに保存されていますか?
- 21. memcachedはどこに保存されていますか?
- 22. EventListenerはどこに保存されていますか?
- 23. phonegap - ファイルはどこに保存されていますか?
- 24. gitデータベースファイルはどこに保存されていますか?
- 25. Android:データベースファイルはどこに保存されていますか?
- 26. TortoiseHg拡張はどこに保存されていますか?
- 27. Alfresco PDFプレビューはどこに保存されていますか?
- 28. IDはどこに保存されていますか?
- 29. KeyChainデータはどこに保存されていますか?
- 30. .pickleファイルはどこに保存されていますか?
スタック/ヒープとは何ですか?私はそこから始めるだろう。また、彼らは彼らが話していたことを知っていたと確信していますか? – PeeHaa
この質問は、PHPのコア開発者として働くことを計画している場合にのみ意味がありますが、その場合は質問に 'C 'タグを付ける必要があります。 – feeela
開発中のメモリ管理については、 PHPで(PHP自体を開発するのとは対照的に)... Zendメモリマネージャー – Basic