
すみません。Ruby言語で、疑問が4つほどあって、
疑問①「組み込みライブラリ」と「標準添付ライブラリ」の違いは、何でしょうか?
で、
疑問②「require
を書かなくても使用可なのが
「組み込みライブラリ」」ですが、
疑問③つまり、逆に言うと、「requireを書かないと使用不可なのが、
「標準添付ライブラリ」」
と言う事でしょうか?
疑問④後、「「標準添付ライブラリ」は、インストール不要」と、書きましたが、逆に言うと、「「組み込みライブラリ」」は、インストールが必要という事ですよね?では、「組み込みライブラリ」は、何をインストールすれば、使用できる様になるのでしょうか?
教えて頂けると幸いです。よろしくお願いします。
No.17ベストアンサー
- 回答日時:
>もし、この2つのURLで、どうしても解決しない場合、申し訳ないですが、また、質問させてもらっても、よろしいでしょうか?
回答:全然、問題ありません。その場合は、遠慮なく質問してください。
これからは、chatGTP等のAIをうまく活用すると、仕事にも大いに役立つと思います。
NO.17です。
迅速な回答ありがとうございます。
そう言って頂けてとても助かります。大変恐縮で、感謝します。
私は、プログラミングの初心者なので。
なので、どうぞ温かい目で、今まで通り回答していただけると尚嬉しいです。
No.16
- 回答日時:
これを機会にAIを活用されると良いかと思います。
私が利用しているのが以下のサイトです。
下記のサイトで質問をすると、直ちに回答が返ってきます。
回答の内容が不明な場合は、更に不明な箇所について質問すると、
それについても、直ちに回答が返ってきます。
以下のサイトになります。
cpliot
https://copilot.microsoft.com/
chatGPT
https://chatgpt.com/
No.16です。
迅速な回答ありがとうございます。わざわざtatsumaru77様が使っているAIの機能のURLを貼って頂きとても恐縮です。感謝しています。
ですが、もし、この2つのURLで、どうしても解決しない場合、申し訳ないですが、また、質問させてもらっても、よろしいでしょうか?
それでは、早速活用させて頂きます。
No.15
- 回答日時:
>疑問①オーバーヘッドとは、何でしょうか?
>疑問②メタデータとは、何でしょうか?
>疑問③ガベージコレクションとは、何でしょうか?
>疑問④メモリアロケーションとは何でしょうか?
>疑問⑤データ構造のハッシュテーブルのカスタム実装とは、具体的にどういう感じなのでしょうか?
>疑問⑥逆に、Pure Ruby版の存在意義とは、何でしょうか?
上記の質問をchatGPTに投げてみました。
下記がchatGPTからの回答です。
ChatGPT:
疑問①: オーバーヘッドとは何でしょうか?
オーバーヘッド(overhead)とは、本来の処理以外に発生する余分な計算やメモリ消費のことです。
たとえば、Rubyのオブジェクトは内部的にメタデータ(型情報、参照カウント、GC用情報など)を持っているため、単なる数値や文字列を扱うだけでも、C言語で直接数値や文字列を扱う場合と比べて余計なメモリが必要になります。
例:
ruby
コピーする
編集する
num = 100 # RubyのIntegerオブジェクト
この num は、単なる 100 ではなく、Rubyの Integer クラスのオブジェクトとして管理されるため、
オブジェクトの管理に必要なメモリ(オーバーヘッド)が追加で発生します。
疑問②: メタデータとは何でしょうか?
メタデータ(metadata)とは、データそのものではなく、データに関する情報のことです。
Rubyのオブジェクトには、以下のようなメタデータが含まれています。
例(Rubyオブジェクトのメタデータ)
クラス情報(例: Integer なのか String なのか)
GCの管理情報(GCがどのタイミングでオブジェクトを回収するか)
オブジェクトID(他のオブジェクトと区別するためのID)
これらの情報を保持することで、Rubyは動的な型付けや自動メモリ管理を実現していますが、メモリのオーバーヘッドが増える原因にもなります。
疑問③: ガベージコレクションとは何でしょうか?
ガベージコレクション(Garbage Collection, GC)とは、プログラムが不要になったメモリを自動的に解放する仕組みです。
Rubyでは、使用されなくなったオブジェクトをGCが検出し、不要なメモリを回収します。
例(GCの働き):
ruby
コピーする
編集する
def create_data
arr = [1, 2, 3, 4, 5] # 一時的な配列
end # メソッドが終了すると `arr` は使われなくなる
上記の arr は create_data の実行後に不要になるため、GCによって自動的にメモリが解放されます。
メリット:
プログラマが手動でメモリを解放する必要がない(メモリリークを防ぎやすい)
デメリット:
GCの処理が実行されると、プログラムが一時的に遅くなる(GCのオーバーヘッド)
大量のオブジェクトを生成すると、GCの負荷が増える
C言語ではGCがないため、メモリ管理を手動で行う必要がありますが、その分オーバーヘッドは減ります。
疑問④: メモリアロケーションとは何でしょうか?
メモリアロケーション(memory allocation)とは、プログラムが実行時にメモリを確保することです。
Rubyでは、オブジェクトを作成するときに自動でメモリが割り当てられますが、C言語では手動で確保・解放する必要があります。
例(C言語でのメモリアロケーション):
c
コピーする
編集する
#include <stdlib.h>
int* ptr = (int*)malloc(sizeof(int) * 10); // 10個のint型のメモリを確保
free(ptr); // 使用後は手動で解放
C言語では malloc でメモリを確保し、free で解放する必要があります。
メリット(手動管理の利点)
必要なメモリだけを確保し、無駄なメモリ使用を避けられる
GCのオーバーヘッドがないため、高速に動作する
デメリット(手動管理のリスク)
メモリリーク(解放し忘れ)やダングリングポインタ(解放後の不正アクセス)に注意が必要
RubyではGCが自動で解放してくれるため、プログラマが手動で free する必要はありません。
疑問⑤: データ構造のハッシュテーブルのカスタム実装とは?
ハッシュテーブルとは、キーと値のペアを効率的に管理するデータ構造です。
Rubyの Hash クラスは内部的にハッシュテーブルを使用していますが、C言語で独自のハッシュテーブルを実装すると、メモリ使用量を最適化できます。
Rubyの Hash:
ruby
コピーする
編集する
hash = { "apple" => 100, "banana" => 200 }
この hash は、内部的に Ruby の汎用的な st_table という構造で管理されており、メタデータのオーバーヘッドがあります。
C言語でのカスタムハッシュテーブルの例:
c
コピーする
編集する
typedef struct {
char *key;
int value;
} HashEntry;
HashEntry table[100]; // シンプルな配列を使う
Rubyの Hash は型の汎用性やGCとの統合のためにオーバーヘッドが発生しますが、C言語では最小限のメモリでハッシュテーブルを実装できます。
疑問⑥: Pure Ruby版の存在意義とは?
Rubyの標準ライブラリには、C拡張版とPure Ruby版の両方が提供されているものがあります。
Pure Ruby版のメリット:
プラットフォーム非依存
C拡張版は環境によってコンパイルが必要ですが、Pure Ruby版はどこでも動作します。
デバッグが容易
Rubyで書かれているため、コードを読んだり変更したりしやすい。
安全性が高い
C言語はメモリ管理のミス(メモリリーク、バッファオーバーフローなど)が起こる可能性がありますが、Pure Ruby版はそのリスクがありません。
軽量な環境でも動作可能
組み込み環境や制限のある環境では、Cコンパイラが使えない場合があるため、Pure Ruby版が有用です。
例: JSON ライブラリ:
Pure Ruby版 (json/pure.rb): どの環境でも動作するが遅い
C拡張版 (json/ext/parser.c): 高速だが、環境によってはコンパイルが必要
このように、Pure Ruby版は移植性・安全性を重視するために存在しているのです。
まとめ
疑問 回答(簡単な要約)
① オーバーヘッド 本来の処理以外の余分なメモリや計算コスト
② メタデータ データの管理情報(型情報、GC情報など)
③ GC 使われなくなったメモリを自動で解放する仕組み
④ メモリアロケーション 実行時にメモリを確保すること
⑤ ハッシュテーブルのカスタム実装 Rubyの Hash をC言語で最適化すること
⑥ Pure Ruby版の意義 移植性・安全性・デバッグしやすさを重視
Pure Ruby版は「どこでも動作する」という強みがあるため、C言語版と併存しているのです。
No.14
- 回答日時:
まず。
圧縮方法の話とかは、元の質問とは完全に別の話題ですよね?
「『組み込みライブラリ』と『標準添付ライブラリ』の違い」にはまったく関係無い話です。
そういうのは別の質問にするべきでしょう。
> 疑問①
https://www.ruby-lang.org/ja/libraries/
また、自分で作ったライブラリを、自作の別のプログラムで使う場合も、(2.2.2)に該当します。
・ライブラリには「組込みライブラリ」と「外部ライブラリ」がある。
・「標準添付ライブラリ」は「外部ライブラリ」である。
ということが元質問に対する重要な点で、(2.2.2)に該当するライブラリを具体的にどうインストールするかはまったく別の話題です。
> 疑問②
・requireが書いてあるかどうかで組込みかそうでないかの判断はできない
・requireが書いてあるからといって、「標準添付ライブラリ」とは判断できない
ということです。
数学の「ならば」と同じで、逆が正しいとは限らない、ということです。
・「組込みライブラリ ならば require文は不要」
は真ですが
・「require文が無い ならば 組込みライブラリ」
は偽です。
「require‘A‘とすると〜(省略)」の具体例として。
https://docs.ruby-lang.org/ja/3.4/library/pp.html
には
> 同時にrequireされるライブラリ
> prittyprint pretty printing アルゴリズムのためのライブラリです。
とあります。
つまり、
require 'pp'
とプログラムに書けば、同時に「require 'prittyprint'」と書いたの同じ「require操作」が実行され、 prettyprintライブラリが使用できます。
・見た目には「require 'prittyprint'」は無い
にもかかわらず
・prittyprintは組込みライブラリではない
となります。
> 疑問③
そのままの意味です。
具体例として
https://docs.ruby-lang.org/ja/3.4/class/PP.html# …
では PP.pp を使って整形した文字列をputsで出力しています。
組込みの Kernel.#pp は使っていません。
> 疑問④
具体的には
https://docs.ruby-lang.org/ja/3.4/doc/index.html
の「Ruby 言語仕様」にあるものが「本体」です。
Rubyは「本体」と「ライブラリ」から構成されている、という説明のために出したもので、具体的に何であるかは本題とは関係ありません。
> 疑問⑤
あなたはRubyでプログラムを作るんですよね?
そのときに classとかdefとかifとかを組み合わせてますよね?
他のライブラリを取り込んで使ってますよね?
それと同じです。
ライブラリは「誰かが作ったプログラム」です。
あなたが作ったプログラムと(出来不出来とかはともかく)同じものです。
No.14です。
迅速な回答ありがとうございます。
一つ疑問ですが、Rubyの「言語仕様(本体)」は、何かという疑問も別の質問にすべきでしょうか?
もし、回答して頂けるならありがたいですが、別の質問にすべきなら、そうします。
教えて頂けると嬉しいです。よろしくお願いします。
No.13
- 回答日時:
具体的にどのような方法で「文字列の圧縮」を行うかについては、
"圧縮アルゴリズム"をキーワードにして、調べてみてください。
下記は一例です。
https://www.plan-b.co.jp/blog/tech/10282/
No.12
- 回答日時:
>疑問②の追加質問ですが、「パフォーマンスを向上させるため」と書いてある中で、
>「処理速度のアップ」は、分かるのですが、なぜ、メモリ消費量の削減になるのでしょうか?
回答:
私は、rubyのライブラリを実装した経験がないので、今までの私の経験による想像で書きました。
念のため、chatGPTに聞いてみました。
chatGPTへの質問内容
rubyスクリプトで書かれた標準添付ライブラリをC言語で実装した場合、メモリ消費量は削減できますか。
chatGPTからの回答
はい、一般的にRubyスクリプトで書かれた標準添付ライブラリをC言語で実装すると、メモリ消費量を削減できる可能性があります。主な理由は以下のとおりです。
1. オブジェクトのオーバーヘッドが削減される
Rubyのオブジェクト(例: Array, String, Hash)は、内部的に多くのメタデータ(クラス情報、GC用情報、オブジェクトIDなど)を保持しており、それがメモリ消費の原因になります。
C言語で実装すれば、純粋なCのデータ構造(例: struct)を使用でき、オブジェクト管理のオーバーヘッドを削減できます。
2. ガベージコレクション(GC)の影響を減らせる
RubyのオブジェクトはGCの管理下にあり、多数のオブジェクトを生成するとGCの負荷が増します。
C言語で実装した場合、必要なメモリを手動で管理できるため、GCの影響を最小限に抑えられます。
3. 不要な中間オブジェクトを削減できる
Rubyのスクリプトで書かれたコードは、中間オブジェクトを多く生成することがあります(例: map, select, flatten などのメソッド)。
C言語では直接メモリを操作するため、不要なオブジェクトの生成を回避できます。
4. ネイティブコードの最適化が可能
C言語では、より効率的なメモリアロケーションやデータ構造(例: 配列、ハッシュテーブルのカスタム実装)を使用でき、メモリ使用量を抑えることができます。
たとえば、Rubyの Array は動的にサイズ変更されるため、メモリの断片化が発生する可能性がありますが、C言語で最適化すれば事前に適切なサイズのメモリを確保することが可能です。
5. 文字列データのメモリ効率が向上
Rubyの String はUTF-8のエンコーディング情報や長さ情報を含むため、余分なメモリを消費します。
C言語では、単純な char* 配列を使うことで、必要最小限のメモリで処理できます。
例: json ライブラリ
Ruby標準添付の json ライブラリには、
Pure Ruby版 (json/pure.rb) と
C言語拡張版 (json/ext/parser.c)
の2つの実装があります。
C言語版の方が高速で、メモリ消費も抑えられることが知られています。
まとめ
C言語で標準ライブラリを実装すると、
✅ メモリ消費量を削減できる可能性が高い
✅ パフォーマンスが向上する
✅ GCの影響を減らせる
といったメリットがあります。
>それと、「同じ機能」とは、何を指しているのでしょうか?
回答:
標準ライブラリの内容は、rubyスクリプトで作成されてますが、それと全く同じ動作をするものをC言語で作成するという意味です。
「rubyスクリプトで作成された標準添付ライブラリと同じ機能」のことを「同じ機能」と書きました。
No.11
- 回答日時:
>疑問① ①の所の説明で、「文字列の圧縮」とは、一体どんな状況(状態)なのでしょうか?
回答:
テキストファイルをzip形式のファイルで圧縮するとファイルのサイズが縮まりますが、その中身は元の原型をとどめず、わけのわからない文字列になることは経験されてますでしょうか。
もし、未経験であれば、何かのテキストファイルをzip形式のファイルに圧縮してみてください。そして、その圧縮されたファイルのファイルサイズと
元のファイルのサイズを比較してみてください。
その圧縮されたファイルのファイルサイズが小さくなっていることが確認できると思います。
そして、圧縮されたファイルの内容をメモ帳などで表示してみてください。
わけのわからない文字列が表示されています。そして、これを解凍すると元のファイルの内容に戻ります。
このわけのわからない文字列が圧縮された状態の文字列です。
zlibでは、zip形式ではなく、gzip形式なので圧縮された結果はzip形式とは内容が異なるかも知れません。zip形式とgzip形式とは、どう違うかは私はわかりませんが、どちらの形式もファイル(ファイルの中身)を圧縮するための形式です。
「文字列の圧縮」とは、文字列のサイズは小さくなり、中身は元の文字列ではないが、元の文字列に復元できる状態のものです。
No.9
- 回答日時:
>「compressed = Zlib::Deflate.deflate("Hello, world!")
>puts compressed
>puts Zlib::Inflate.inflate(compressed)」
>これについて、鍵括弧の部分を1行ずつ解説して頂きたいのですが。
回答:
私も、初めてzlibを見たので、実際に使ったわけではありませんので、間違いがあるもしれません。
zlibのマニュアルは下記です。
https://docs.ruby-lang.org/ja/latest/library/zli …
①compressed = Zlib::Deflate.deflate("Hello, world!")
ここででは、"Hello, world!"の文字列を圧縮して、その結果をcompressedに格納しています。
②puts compressed
compressedの内容を印字しています。内容は、わけのわからない文字列です。
(印字する意味があるかどうかは不明)
③puts Zlib::Inflate.inflate(compressed)
compressedを元に戻します。そして、その結果を印字します。
"Hello, world!"が表示されます。
No.8
- 回答日時:
>C言語で実装されたライブラリは、パフォーマンスを向上させるためにネイティブコードとして提供されています。
」>の所で、
>疑問①
>「C言語で実装されたもの(拡張ライブラリ)」の所は、C言語の部品が入ったものですよね?
回答:
はい、そうです。
>疑問②なぜ、「C言語で実装されたもの(拡張ライブラリ)」の存在意義とは、何でしょうか?例を挙げて頂けると嬉しいです。
回答:
「パフォーマンスを向上させるため」と書かれているように、処理速度のアップ、メモリ消費量の削減が存在意義になると思います。
多分、想像ですが、同じ機能をrubyスクリプトで実装するよりは4~5倍速くなるような気がします。
(実測したわけではありません。4~5倍はあてずっぽうです。場合によっては、もっと速くなるかもしれません)
>疑問③「C言語で実装されたライブラリは、パフォーマンスを向上させるためにネイティブコードとして提供されています。」
>の所は、つまり、「コンピューターが、すぐにC言語で実装されたライブラリを使用できますよ。」という事でしょうか?
回答:
はい、そうです。
>疑問④「ネイティブコード」と「機械語」の違いは、何でしょうか?
回答:
同じ意味です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語について。 8 2023/11/20 16:17
- その他(プログラミング・Web制作) Google ColaboでGUI作成 2 2024/02/26 16:07
- その他(プログラミング・Web制作) Pythonのライブラリをダウンロード済みかどうか簡単にチェックできますか? 3 2023/06/24 10:48
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- UNIX・Linux ubuntu 24 へのCanon 複合機スキャナードライバーのインストール時のエラー 1 2024/12/01 14:01
- 写真・ビデオ iPhoneのプライバシーとセキュリティの写真の項目について 2 2023/06/24 23:11
- iPhone(アイフォーン) 「ライブラリ」ってどこの事ですか? ※ 英語の勉強のために Amazon で買物をしたいのですが、「 2 2023/07/14 22:04
- iPhone(アイフォーン) iPhoneのプライバシーとセキュリティの写真の項目について 1 2023/06/24 20:25
- C言語・C++・C# いまc言語の標準ライブラリ文字列を勉強しているのですがいまいちわかりません。 strcmpとmemc 5 2023/07/04 15:34
- MySQL html上でMySQLにアクセス(JavaScript?)してデータを表示させる方法 5 2024/04/17 11:04
このQ&Aを見た人はこんなQ&Aも見ています
-
ruby while式
Ruby
-
Ruby newメソッド
Ruby
-
ruby OpenURI::Meta
Ruby
-
-
4
Ruby 引数
Ruby
-
5
ruby loopメソッド 変数
Ruby
-
6
ruby loopメソッド 変数(再喝)
Ruby
-
7
ruby begin句
Ruby
-
8
ruby 配列
Ruby
-
9
アセンブリ言語について。
その他(プログラミング・Web制作)
-
10
HTML &CSSとHTML5&CSS3 違い
HTML・CSS
-
11
ルビー言語 csvファイル part2
Ruby
-
12
ルビー言語 ライブラリー
Ruby
-
13
ruby raise句
Ruby
-
14
ルビー言語 ライブラリー(再々渇)
Ruby
-
15
Python 3.12.2 か一番最新のパイソンでしょうか? 2025年4月3日現在。 ChatGP
その他(プログラミング・Web制作)
-
16
HTML&CSS メディアクエリについて。
HTML・CSS
-
17
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Visual Basic(VBA)
-
18
HTML&CSS メディアクエリについて。
HTML・CSS
-
19
Ruby 格納
Ruby
-
20
COPYコマンドで、最後に1文字「Hex1A」が付くのはなぜ?外し方は?
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
ruby loopメソッド 変数
-
VBA メモ帳の上書き保存がしたい
-
Ruby require ライブラリー
-
ruby loopメソッド 変数(再喝)
-
ruby 配列
-
ルビー言語 ライブラリー 追記
-
A4 持ち込み
-
パソコンのスクリーンセーバー...
-
ruby OpenURI::Meta
-
ruby while式
-
ruby クラス・オブジェクト・イ...
-
ruby raise句
-
(再質問)エクセルのマクロボ...
-
ruby begin句
-
ルビー言語 csvファイル 続き
-
ルビー言語 csvファイル part2
-
Ruby newメソッド
-
プログラミング
-
pythonエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby require ライブラリー
-
(再質問)エクセルのマクロボ...
-
ruby loopメソッド 変数(再喝)
-
ruby loopメソッド 変数
-
ルビー言語 ライブラリー(再々...
-
ruby while式
-
ルビー言語 ライブラリー 追記
-
ビーリアルのユーザー名を変え...
-
ruby OpenURI::Meta
-
ruby クラス・オブジェクト・イ...
-
ruby begin句
-
ruby raise句
-
ruby ensure句
-
ruby 配列
-
ルビー言語 csvファイル part2
-
ルビー言語 csvファイル 続き(...
-
ルビー言語 csvファイル 続き
-
ルビー言語 ライブラリー
-
パソコンのスクリーンセーバー...
-
ルビー言語 ライブラリー
おすすめ情報
No.2です。
迅速な回答ありがとうございます。
No.3です。
迅速で懇切丁寧な回答ありがとうございます。
すみません。揚げ足を取る様で、申し訳ないのですが、「標準ライブラリ」は、「標準添付ライブラリ」の間違いとかではないですよね?
もし、違っていたら、大変失礼しました。
教えて頂けると嬉しいです。よろしくお願いします。
それで、質問なのですが、
No.1の「チャットgpt」の所で、
「一部の標準ライブラリは拡張ライブラリ(Cで実装されたもの)」
の所を、もう少し詳しく教えて頂けると嬉しいです。よろしくお願いします。
すみません。4つほど質問があって、
「C言語で実装されたもの(拡張ライブラリ) の両方があります。
C言語で実装されたライブラリは、パフォーマンスを向上させるためにネイティブコードとして提供されています。」
の所で、疑問①
「C言語で実装されたもの(拡張ライブラリ)」の所は、C言語の部品が入ったものですよね?
疑問②なぜ、「C言語で実装されたもの(拡張ライブラリ)」の存在意義とは、何でしょうか?例を挙げて頂けると嬉しいです。
疑問③「C言語で実装されたライブラリは、パフォーマンスを向上させるためにネイティブコードとして提供されています。」の所は、つまり、「コンピューターが、すぐにC言語で実装されたライブラリを使用できますよ。」という事でしょうか?
疑問④「ネイティブコード」と「機械語」の違いは、何でしょうか?
以上4点について、教えて頂けると嬉しいです。
すみません。やはり追加質問させて頂きます。
require 'zlib'
「compressed = Zlib::Deflate.deflate("Hello, world!")
puts compressed
puts Zlib::Inflate.inflate(compressed)」
これについて、鍵括弧の部分を1行ずつ解説して頂きたいのですが。
教えて頂けると嬉しいです。よろしくお願いします。
すみません。質問が5つほどあって、
疑問①(2.2.2)別途インストールの所は、どうなるのでしょうか?
疑問②「requireが不要なのが組み込みライブラリ」と、「requireを書かないと使用不可なのが標準添付ライブラリ」というのは正しくありません。所と、
とその例も、「require‘A‘とすると〜(省略)」と「例えば〜(省略)」(•の2つ)が分かりません。
疑問③「PPクラスを使いたい +組込みのppは使わない時」は、どういう時でしょうか?
疑問④(1)「言語」本体の、例とは、defとかを指しているという事でしょうか?
疑問⑤各クラスやメソッド(1)を使って作られる(2)というのは、どういう意味でしょうか?
それと、「言語本体」というのは、ど例えばどういう意味でしょうか?
教えて頂けると幸いです。よろしくお願いします。
すみません。疑問②の追加質問ですが、「パフォーマンスを向上させるため」と書いてある中で、「処理速度のアップ」は、分かるのですが、なぜ、メモリ消費量の削減になるのでしょうか?
それと、「同じ機能」とは、何を指しているのでしょうか?
教えて頂けると幸いです。よろしくお願いします。
すみません。質問が1つあって、
疑問① ①の所の説明で、「文字列の圧縮」とは、一体どんな状況(状態)なのでしょうか?
教えて頂けると幸いです。よろしくお願いします。
すみません。疑問が、6つほどあるのですが、
疑問①オーバーヘッドとは、何でしょうか?
疑問②メタデータとは、何でしょうか?
疑問③ガベージコレクションとは、何でしょうか?
疑問④メモリアロケーションとは何でしょうか?
疑問⑤データ構造のハッシュテーブルのカスタム実装とは、具体的にどういう感じなのでしょうか?
疑問⑥逆に、Pure Ruby版の存在意義とは、何でしょうか?
以上6点について教えて頂けると嬉しいです。よろしくお願いします。