ページへ戻る

− Links

 印刷 

OT​/0003 のバックアップ差分(No.3) :: OSASK計画

osaskwiki:OT/0003 のバックアップ差分(No.3)

« Prev[4]  Next »[5]
2: 2009-07-13 (月) 22:09:46 ソース[6] 3: 2009-07-13 (月) 22:09:46 ソース[7]
Line 20: Line 20:
-OSが展開ルーチンを持つようになったので、OSは他のところでも圧縮技術を積極的に利用できるようになった。そこでファイル圧縮の自動展開サポートが導入された。これは、圧縮されたファイルをオープンしても、まるで無圧縮であるかのように普通に読める機能である。これはアプリやユーザが、自分が開こうとしているファイルが圧縮されたものなのかどうかを気にしなくていいという文化を生んだ。そしてOSはファイル圧縮の有無をファイル名ではなくファイルの中身の先頭のシグネチャで判定するので、拡張子などからも圧縮を想起させるような部分はない。オープン時にわずかに時間がかかることと、ファイルサイズが小さくなること、そして圧縮されたものは読み取り専用属性がついてしまうこと以外は、なんらかわらない。こうして頻繁に書きえられることのないファイルについては、ほとんど全てがtek0圧縮をかけられ、それによってアプリのロード時間は短縮され、ディスクの空きスペースも増えて、大成功を収めた。OSASKにおいて圧縮しないことはもはや非常識であると[[K]]が断言するところくらいにまで進んだ。 -OSが展開ルーチンを持つようになったので、OSは他のところでも圧縮技術を積極的に利用できるようになった。そこでファイル圧縮の自動展開サポートが導入された。これは、圧縮されたファイルをオープンしても、まるで無圧縮であるかのように普通に読める機能である。これはアプリやユーザが、自分が開こうとしているファイルが圧縮されたものなのかどうかを気にしなくていいという文化を生んだ。そしてOSはファイル圧縮の有無をファイル名ではなくファイルの中身の先頭のシグネチャで判定するので、拡張子などからも圧縮を想起させるような部分はない。オープン時にわずかに時間がかかることと、ファイルサイズが小さくなること、そして圧縮されたものは読み取り専用属性がついてしまうこと以外は、なんらかわらない。こうして頻繁に書きえられることのないファイルについては、ほとんど全てがtek0圧縮をかけられ、それによってアプリのロード時間は短縮され、ディスクの空きスペースも増えて、大成功を収めた。OSASKにおいて圧縮しないことはもはや非常識であると[[K]]が断言するところくらいにまで進んだ。
*** (4)tek1~tek5へ *** (4)tek1~tek5へ
--アプリの中の.dataだけではなくアプリも含めた全てのファイルが圧縮されるようになると、tek0よりも高度な圧縮を導入したほうがバランスが取れるといえる。というのは、確かに高度なアルゴリズムの導入によってOSは肥大化するが、それによって多くのファイルが少しずつ小さくなり、その寄与の合計は、対象が多くなった分だけ大きくなったからである。+-アプリの中の.dataだけではなくアプリも含めたほとんどのファイルが圧縮されるようになると、tek0よりも高度な圧縮を導入したほうがバランスが取れるといえる。というのは、確かに高度なアルゴリズムの導入によってOSは肥大化するが、それによって多くのファイルが少しずつ小さくなり、その寄与の合計は、対象が多くなった分だけ大きくなったからである。
-またそれまでは展開は一度に行うものという前提であったが、大きなファイルをオープンする場合などは、全体を一度に展開するのは非効率である。アクセスされた部分のみを展開するほうが良いと思われる。そこで圧縮対象を複数のブロックに分割し、ブロックごとに圧縮展開できるようにフォーマットを改良した。また符号化の方針も、展開速度重視から圧縮率重視までのラインナップを作り、多様な場面で適切に選択できるようにした。 -またそれまでは展開は一度に行うものという前提であったが、大きなファイルをオープンする場合などは、全体を一度に展開するのは非効率である。アクセスされた部分のみを展開するほうが良いと思われる。そこで圧縮対象を複数のブロックに分割し、ブロックごとに圧縮展開できるようにフォーマットを改良した。また符号化の方針も、展開速度重視から圧縮率重視までのラインナップを作り、多様な場面で適切に選択できるようにした。
--しかし結局マルチブロック形式のサポートは暇がなくて行われていないままである。 --しかし結局マルチブロック形式のサポートは暇がなくて行われていないままである。
Line 30: Line 30:
-高速化のためにアプリの一部にループアンローリングを施しても問題はない。だってそんな繰り返しは圧縮されてしまうのだから。だからアプリの肥大化を気にせずに、必要なアンローリングは積極的に行う。 -高速化のためにアプリの一部にループアンローリングを施しても問題はない。だってそんな繰り返しは圧縮されてしまうのだから。だからアプリの肥大化を気にせずに、必要なアンローリングは積極的に行う。
-ファイルも圧縮できるので、設定ファイルなどの構造を容量を気にして考える必要がない。単純でせこくないのがいいのだ。そうすることで、拡張性のある設定ファイルとなり、アプリのバージョンアップがあっても、設定ファイルフォーマットを変える必要がなく、複数のバージョンをサポートすることもない。 -ファイルも圧縮できるので、設定ファイルなどの構造を容量を気にして考える必要がない。単純でせこくないのがいいのだ。そうすることで、拡張性のある設定ファイルとなり、アプリのバージョンアップがあっても、設定ファイルフォーマットを変える必要がなく、複数のバージョンをサポートすることもない。
--こうして[[K]]は、圧縮技術はOSがサポートすべき機能の一つであると確信した。+-こうして[[K]]は、圧縮技術はOSがサポートすべき機能の一つであると確信した。というのは、圧縮の存在を前提にするかしないかで大きな差があるからである。圧縮サポートが無いか、もしくはオプショナルだと、圧縮サポートを前提にしたこれらのテクニックの利用をためらってしまう。
*** (6)さらに上を目指して *** (6)さらに上を目指して
-こうして特に何も苦労しなくてもコンパクトはアプリが簡単に作れるOSASKであるが、これは決して万能ではない。そもそも圧縮というのは、そのデータが持っている無駄を見つけてそれを削るようなものである。つまりもともと無駄のないデータに対しては、圧縮は無力で、むしろ若干のサイズ上昇になってしまうくらいだ。 -こうして特に何も苦労しなくてもコンパクトはアプリが簡単に作れるOSASKであるが、これは決して万能ではない。そもそも圧縮というのは、そのデータが持っている無駄を見つけてそれを削るようなものである。つまりもともと無駄のないデータに対しては、圧縮は無力で、むしろ若干のサイズ上昇になってしまうくらいだ。
« Prev[4]  Next »[5]