jyou5さん、こんにちは
jyou5 による書き込み:
iOSであれ、MacOSやWindows、UNIXであれ、そもそもOS自体のプログラムコードが1バイト文字で
書かれているので、2バイト文字を扱うこと自体が、すでに負担があるものだと思っていました。
プログラムが1バイト文字で書かれているというのは、半角1文字=1バイト文字(SIFT-JIS等)が前提の条件でのみ当てはまります。プログラム自体がUNICODEで記述されていれば、見た目は1バイト文字(半角文字)でも1文字=2バイトや4バイトのコードが割り当てられています。
そもそも、最終的には実行用のバイナリコードに変換されていますので、プログラムが1バイト文字で書かれているかどうかは処理速度には影響は無いといえます。
もちろんインタプリタ言語で記述されたプログラムは逐次コードを解釈しながら実行しますので、割り当てられる文字コードが短いほど処理速度が早くなると言えなくも無いですが、それですら最近では実行時にコンパイルしながら処理する手法が用いられていますのでプログラムが1バイト文字で書かれているかどうかは処理速度には影響は無いといえます。
8ビットCPUなら1バイト文字を処理する方が2バイト文字を処理するより処理速度的に有利と言えなくもないですが、最近のCPUは32ビットや64ビットですので、1バイト文字だから処理速度が有利と言うことはまず有りません。(処理アルゴリズム次第では、むしろ遅くなる傾向がある。)
処理速度に大きく影響するのはアルゴリズムによる要素が大きいです。
ここからは脱線失礼
昔のCPUはメモリの制約が厳しかったために、アセンブラでコーディングしたり、コンパイラの出力するコードを人間の手で最適化を行ったりしてプログラムサイズを小さくしたりしていましたが、それではメンテナンス性が低下しプログラムの構造的な最適化も困難になります。また、最近ではCPUも複雑化しており人間の手による半端な最適化は通用しなくなっています。
MacOS XやiOSはObjective-Cという動的なプログラミング言語の機能を最大限生かすような構造になっています。
これは、コンパイル時にプログラムの機能が確定してしまうのではなく、実行時の各モジュール間の通信に従って動作するという複雑なシステムです。この動的なリンク機能のおかげで各モジュールの独立性が保たれ、且つ機能の変更や拡張が容易になっています。
その反面、プログラム単体では問題が無くとも、複数のプログラムを動作させると現れるバグも出てきます。その為、各個人の環境によっては使用に耐えられないほどの速度低下が発生していると考えられます。
この様なオブジェクト指向の環境は何しろメモリを大量に消費します。その為メモリ管理は非常に重要な要素となっています。最近のObjective-C(Ver.2.0)はメモリ管理の機能(自動ガベージコレクション)を備えてはいますが、万全ではないため各プログラムで適切にメモリ管理が行われていないと破綻してしまいます。
原因解明には、どのアプリケーションが速度低下をもたらしているのか、どの組み合わせが駄目なのか、幅広い情報収集が必要になるかと思います。