レジストリ vs プライベートINI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/22 18:00ID:kWO77Burプログラマの視点から、逆にユーザの視点から、
それぞれの利点や欠点について意見を聞かせてください。
0449もなか
02/03/23 01:29ID:???カブリにくいからだろうね。
ファイルの場所自体も 作者名\ソフト名 と二重のくくりにした方が確実。
その場合、ソフト名フォルダ内に本体がある方が自然でしょ。
レジストリの登録と同じ理屈だと思う。
0450名無しさん@お腹いっぱい。
02/03/24 00:26ID:???個人だから会社名の代わりに作者名という程度の
理由と思われ
0451448
02/03/27 01:09ID:???>>449さん
ソフト名がカブるってそんなにあるのかなぁって思った。
>>450さん
なるほどーと。 それくらいの理由だったら勘弁して欲しいけど^^;
0452名無しさん@お腹いっぱい。
02/03/28 05:27ID:???かぶっても大丈夫なようにMSが推奨してるんだろ?
0453名無しさん@お腹いっぱい。
02/03/28 05:51ID:???滅多には被らないだろうけど、被った時は何が起こるかわからないし。
読むソフトの想定外の設定になってる可能性があるんだから。
出来るだけ被らないようにしてくれた方がいいっしょ。
0454名無しさん@お腹いっぱい。
02/04/09 12:39ID:???海外製のレジストリ最適化ソフト使ったら漢字使ったレジストリキーの所で
無限ループ起こしたらしくログがとんでもない事になってた。
0455名無しさん@お腹いっぱい。
02/04/10 02:37ID:???0456名無しさん@お腹いっぱい。
02/04/11 16:23ID:???それは困るね。
レジストリを掃除するソフトで国産ので良いのがあれば使うけど良いの無いしね。
0457名無しさん@お腹いっぱい。
02/04/12 05:52ID:???0458名無しさん@お腹いっぱい。
02/04/12 12:43ID:???日本語キーに対応してない最適化ソフトのほうが悪い。
0459名無しさん@お腹いっぱい。
02/04/12 14:22ID:???それってその海外製アプリの不具合じゃん。
作者に2バイトコードに対応してくれって要望出せばよい。
0460名無しさん@お腹いっぱい。
02/04/12 17:13ID:???他のソフトでも不具合が出る可能性が出てくるわけでしょ。
だったらわざわざ不具合が出るかもしれない2バイト文字の使うこたねーと思うが。
0461名無しさん@お腹いっぱい。
02/04/12 17:22ID:???ttp://www.haltz.com/rgstry/chap3b/regedit.htm
0462名無しさん@お腹いっぱい。
02/04/12 21:46ID:???なんのためにキーをUnicodeにしてるんだか(NT系の場合)。
0463名無しさん@お腹いっぱい。
02/05/16 15:26ID:???。
o O
o
(( /甲甲\ スイスイ
(( <( ( ´∀`) そろそろageるか。
⊂亠⊂亠亠⊃
o
0464名無しさん@お腹いっぱい。
02/05/17 09:24ID:???0465こんなスレ立ててもいいと思いますか?
02/06/11 19:19ID:hkRZ/IPH------------------------------------
【インスコ】再インストールの必要の無い市販のアプリを紹介したりするスレ【省力化】
Windowsが死んだとき、再インストールはお約束ですが、そこには非常に
無駄な労力が使われてしまいます。
国民総生産量(GDP)を引き下げる原因である「再インストール」を極限まで
省力化するスレです。
※パーティションの切り方など、基本的な質問は出来るだけよそでやって下さいおながいします。
つーことで、漏れのバックアップコンボ
�@RealSynkで
C:\WINDOWS\スタート メニュー\
C:\WINDOWS\Favorites\
C:\WINDOWS\Tasks\
C:\WINDOWS\Cookies\
バクアプ
�Aレジストリを特定ソフトを狙い打ちでバクアプ
�Bノートンゴースト様でOS用ドライブを、復元
�Cレジストリ・データを、逆手順で復元
�D「新たに導入したソフト・ドライバを再インスコ」←無駄
�E(゚д゚)復元完了ウマー (所要時間 約30分 手順�Dの長さで変わる)
�F+α ノートンゴースト様で、最新の復元CDを作る
このバクアプ法の弱点
C:\Windows\ なんかに糞dllをブチ込むアプリを再導入しなおす手間が発生する。
-----------------------------------------------------------------
レジストリとあまり関係の無いソフトは、殆どDドライブに入れるんだが
こんなスレ、どうよ
0466名無しさん@お腹いっぱい。
02/06/11 19:22ID:???さっさと立てて首つって氏ね
0467465
02/06/11 19:29ID:???駄目か…。
スレ立てる前に、聞いておいて良かったよ。
恥かかずにすんだ。サンクスコ
0468名無しさん@お腹いっぱい。
02/06/11 20:34ID:???立ててよ!
0469名無しさん@お腹いっぱい。
02/06/11 20:42ID:???こちとら、再インストールで金稼いでるんだ(ワラ
0470名無しさん@お腹いっぱい。
02/06/15 07:59ID:???なんとも虚しい商売だね
0471名無しさん@お腹いっぱい。
02/06/15 09:08ID:BxBFb0SH0472名無しさん@お腹いっぱい。
02/06/15 11:32ID:???0473名無しさん@お腹いっぱい。
02/06/15 12:32ID:BxBFb0SH他にも、フレームワークを使って書くと、自分は使ってなくても、フレームワークが使ってるとか。
0474名無しさん@お腹いっぱい。
02/07/02 22:27ID:sYmdbmn80475名無しさん@お腹いっぱい。
02/07/02 23:04ID:hR4rz4M9そこで急遽作られた
http://www.geocities.co.jp/SiliconValley-Oakland/8192/
って思わずひざを打つような(打ってねーけど)指摘がいっぱいあるね。
やっぱり作り手でも分かってる人は分かってるんだ。
0476名無しさん@お腹いっぱい。
02/07/03 18:01ID:???レジストリ…アンインストが面倒・バックアップしにくい
0477名無しさん@お腹いっぱい。
02/07/03 18:03ID:???0478名無しさん@お腹いっぱい。
02/07/03 18:04ID:???0479名無しさん@お腹いっぱい。
02/07/03 18:18ID:???iniは呼び出し要求があるたびにファイルを開いて、
キーをサーチしてるから遅い。
0480名無しさん@お腹いっぱい。
02/07/03 18:19ID:???0481名無しさん@お腹いっぱい。
02/07/03 18:37ID:???速度はも遅い方かも知れないけど、
iniよりは早いと思うよ、うん。
0482名無しさん@お腹いっぱい。
02/07/16 02:38ID:aOpC1abc私はini派だなぁ・・・1ユーザーとして。
0483名無しさん@お腹いっぱい。
02/07/16 07:33ID:???バッファ内で処理すれば良い。
0484名無しさん@お腹いっぱい。
02/07/16 08:36ID:???そんなことをするんじゃ、コメントの取り扱いが面倒になるし、
手軽に扱えるのがウリのiniを利用する意味もほとんど無くなる。
DelphiとかみたいにはじめからTMemIniFileとか用意されているならいいけどね。
0485名無しさん@お腹いっぱい。
02/07/22 18:08ID:???0486名無しさん@お腹いっぱい。
02/07/22 18:12ID:???0487名無しさん@お腹いっぱい。
02/07/22 18:13ID:???0488名無しさん@お腹いっぱい。
02/07/22 18:14ID:???0489名無しさん@お腹いっぱい。
02/07/22 18:16ID:???0490名無しさん@お腹いっぱい。
02/07/22 18:18ID:???0491名無しさん@お腹いっぱい。
02/07/23 01:13ID:???0492おやむん
02/07/24 00:15ID:tzpyIEwd漏れもini(レジストリも)はいじられたくないなぁ。
バックアップのためってもiniをコピーされたくねー。
てことで、設定を書き出せるようにするほうに一票。
で、スレ違いっぽいけど
マルチユーザー = EXE一個で複数のユーザーに対応
マルチインスコ = それぞれのユーザーにEXE一個ずつ
てことを踏まえて
インスコはiniをEXEと一緒にしてあとはご自由に
マルチユはiniかregで、uninstallはゴミのこすなよってこと?
でもさぁ、マルチユの場合イニでもレジでもアドミンしか完全に消せなくね?
となると、やっぱソフトがマルチユ云々じゃなくてインストーラの
問題じゃねぇの?
完全にマルチユ対応にしようとするとアドミンしかinstallできなくね?
UsersでもOKとなるとシングルしか無理っぽいけど、結局
シングル = インストーラなし、
マルチユ = インストーラあり
こゆこと?
0493名無しさん@お腹いっぱい。
02/07/24 00:23ID:???Admin権限があると、適切にアンインストール処理すれば、
他のユーザーのレジストリも消せる。
0494名無しさん@お腹いっぱい。
02/07/24 00:24ID:???0495おやむん
02/07/24 00:25ID:???使用期限どこに保存する?(w
0496名無しさん@お腹いっぱい。
02/07/24 00:35ID:???0497名無しさん@お腹いっぱい。
02/07/24 00:35ID:???MBRに記録していたツワモノがあった。ウィルスかっつーの。
シェアウェアというか計測用ソフトだが。
0498おやむん
02/07/24 00:42ID:???そうだよなぁ、マルチユの場合アドミンじゃないとキツイよなぁ。
>>494
PowerUserでもProgram Filesインスコできるけど、
ここのとこよく知らないんだけど
例えば他のユーザーの設定消せるのかな?
消せなかったらゴミ残しそうな。。。。
てことは、インストーラでアドミンで動いていたらマルチユとしてインスコ
そうじゃなかったらシングルでインスコってことでOK?
0499名無しさん@お腹いっぱい。
02/07/24 00:49ID:???サイズがでかめのブートローダー破壊して、再起不能になりそうだ。
>>498
ていうか、Admin以外でインストールするなと言う気もする。
0500おやむん
02/07/24 00:53ID:???>>496
なんか、みたことある。某OCとか(w
これってやっぱりアンインストしても、ここは残すね。
でもそれってゴミだよなぁ
しかし、こればっかりは綺麗にすると元も子もない(w
そこんとこ難しいよな・・・
>>495
強烈だなオイ(w。それってチェックに引っかかるって。
そこまではしたくねぇ、人として。
0501名無しさん@お腹いっぱい。
02/07/24 00:57ID:???そこに記録するドライバなら作ったけど、
自分で破壊したことがあるから公開してない(ワラ
0502名無しさん@お腹いっぱい。
02/07/24 00:58ID:???って言われたら、iniの名前をユーザごとに変えてマルチユーザ化するのが
手っ取り早いような気がするので、そうすると思う。
EXEと同じところにini置いとけば、アクセス権も一元管理できるし。
何か不都合あるだろうか?
>>498
どうでもいいけど、何で「マルチユ」というのに「シングルユ」って言わないんです?
0503名無しさん@お腹いっぱい。
02/07/24 01:09ID:???PowerUsers以上のグループじゃないとiniを作れない。
0504おやむん
02/07/24 01:16ID:???たしかにそういう気はする。
設定ファイルいじるなと同じで(w
>>501
BIOSってアンタ・・・ま、まさか神!?
>>502
503も言ってるけど、
それプラスみんながアクセスできるとこだと勝手に見られる。
まぁ、見られてもいいデータじゃないならいいんじゃないの。
あと作ったヤシしか読めない設定にする手も>NTFS
消す時はアドミンで。
というかそういう場合はiniを
C:\Documents and Settings\All Users\Application Data
C:\Documents and Settings\ユーザー\Application Data
に置いた方がいいらしいと、上のほうで書いてあった(w
しかし、こうやるとフォルダ探すのがうざいらしい。
ユってつけないとマルチインスコと間違えそうだから。
まぁ、どうでもいいけどな。
0505名無しさん@お腹いっぱい。
02/07/24 13:49ID:???書き込みできないなら、そのプログラムのフォルダだけ必要なアクセス許可与
えてくれ、と、運用する側に頼るのは甘えすぎだろうか?
ミニアプリの場合は、だけど。
書き込みできないときはその旨のメッセージボックス出すか何かして。
>>504
データの機密性
レジストリ(HKCU) ファイル
9x × ×
NT ○ △(FileSystem依存)
どっちでも動くようなアプリを作っている場合、データの機密性を保とうとし
たら一工夫いりますな。
0506名無しさん@お腹いっぱい。
02/07/25 14:31ID:???レジストリって本当に早いの?
あの膨大なデータの中から目的のキーを選んで引っ張ってくるんだよね?
iniの方が早いと思うのは間違い?
0507名無しさん@お腹いっぱい。
02/07/25 14:42ID:???0508名無しさん@お腹いっぱい。
02/07/25 14:46ID:???ハッシュって知ってる?
0510名無しさん@お腹いっぱい。
02/07/25 17:43ID:???ハッシュってなんだ?
別にレジストリとハッシュは特別に結びつく物でもないが。
レジストリが速いのはファイルシステムと同じように、
Index+関連づけられたデータという構造だから。
iniファイルは、値取得、書き込み要求ごとに、
ファイルを開く>リニアサーチ>取得だったり書き込み>ファイルを閉じる
というプロセスで処理されている。
でかくなってくると、当然、リニアサーチにかかる負荷も尋常じゃない物に。
0511名無しさん@お腹いっぱい。
02/07/25 23:45ID:???システム的に優遇されてるから早いんだろ。
0512名無しさん@お腹いっぱい。
02/07/26 00:05ID:???(探すと言うよりハッシュなので計算すれば探さずに一発で辿り着くのだが)
0513名無しさん@お腹いっぱい。
02/07/26 03:02ID:???ファイルシステムもリニアサーチだよ。FAT32のFindFirstFileとか。
0514名無しさん@お腹いっぱい。
02/07/26 12:54ID:???レジストリへのアクセスはINIより早いの?
またINIの方が高速と感じたり、どちらも同じくらいって感じる
サイズはINIのサイズにしてどれくらいなの?
0515名無しさん@お腹いっぱい。
02/07/26 12:57ID:???0516名無しさん@お腹いっぱい。
02/07/26 13:59ID:???B+Treeを使っている。
0517名無しさん@お腹いっぱい。
02/07/26 14:00ID:???iniの方が速いケースは存在しないよ
0518名無しさん@お腹いっぱい。
02/07/26 15:56ID:???じゃぁ体感できるほどレジストリの方が早いケースって?
0519名無しさん@お腹いっぱい。
02/07/26 15:58ID:???これが全部INIアクセスだったら体感できるほど遅くなってるだろう。
0520名無しさん@お腹いっぱい。
02/07/26 19:58ID:???そうだな、アプリケーション自体が違うから、
比べられないといえば比べられないけど、
レジストリを使用しているテキストエディタと、
iniファイルベースのテキストエディタの起動時間とか比べてみると良いんじゃない?
0521名無しさん@お腹いっぱい。
02/07/26 22:58ID:???うん、それは分かるんだけど、
1k,2k程度のiniをレジストリに変更しても、
そんなに速度差を感じないんだよね。
だからその程度のファイルをわざわざレジストリに置いて
Win全体を不安定にさせなくても…って思うんだよね。
まぁNT系だとそんなに不安定にはならないんだけど、
チリも積もればってやつで。
0522名無しさん@お腹いっぱい。
02/07/26 23:34ID:???そこいらのソフトで数KByte使ったところで不安定になるとは思えんが。
0523名無しさん@お腹いっぱい。
02/07/26 23:55ID:???iniとレジストリの読み込みや書き込み速度なんてわからないだろ。
0524名無しさん@お腹いっぱい。
02/07/26 23:56ID:???そうでもないよ。その1/10位でも速度差でるんじゃない?
0525名無しさん@お腹いっぱい。
02/07/27 00:03ID:???おいおい、、、
レジストリに書き込むと不安定になるっていったいどんな環境だよ。
HKCU以下に書き込んでも、OSの基本部分への影響は皆無だよ。
dbファイルからして別物なんだし。
0526名無しさん@お腹いっぱい。
02/07/27 00:04ID:???0527名無しさん@お腹いっぱい。
02/07/27 00:05ID:???それじゃぁ体感できんじゃん…
0528名無しさん@お腹いっぱい。
02/07/27 00:10ID:???レジストリの項目数に対する対数オーダー+メモリアクセスのオーバーヘッド分で
iniの読み書き速度は
iniの項目数に対する線形オーダー+ファイルアクセスのオーバーヘッド分じゃないの?
0529名無しさん@お腹いっぱい。
02/07/27 00:39ID:???「マルチユーザへの対応が簡単」ってだけ?
速度差も馬鹿でかいサイズを一気に読み書きしなきゃ体感できないんだろ?
ていうか、ここの話聞いてると
今あるレジストリ使用するオンラインソフトの99%はINIで問題なさそうな気が…
0530名無しさん@お腹いっぱい。
02/07/27 00:40ID:???それに従ってるんじゃないの?
0531名無しさん@お腹いっぱい。
02/07/27 00:42ID:???あんた、キッチリ調査して言ってますか?
HKCU以下を読むのは各種サービスやShell等です。
カーネルやWin32サブシステムに必要な情報はHCLMにしか記録されていません。
0532名無しさん@お腹いっぱい。
02/07/27 00:43ID:???OSの基本部分の定義が不明。
0533名無しさん@お腹いっぱい。
02/07/27 00:44ID:???速度は2〜3kbでも体感できるよ。
たとえば、ファイラーのDFをiniを作らない状態と、
iniを作ってからで起動速度比べてごらん。
0534名無しさん@お腹いっぱい。
02/07/27 00:45ID:???ディスクアクセスのオーバーヘッドが問題なんじゃない?
0535名無しさん@お腹いっぱい。
02/07/27 00:47ID:???0536名無しさん@お腹いっぱい。
02/07/27 00:48ID:???やってみれば分かるって。
1度起動して全部キャッシュに入れてからでも体感出来るから。
0537名無しさん@お腹いっぱい。
02/07/27 00:48ID:???0538名無しさん@お腹いっぱい。
02/07/27 00:53ID:???よっぽど実装方法が悪かったとか、
使ってるハードがよっぽどショボイってだけなんじゃぁ…
0539名無しさん@お腹いっぱい。
02/07/27 00:55ID:???ディスクアクセスがある時点で例え何バイトであろうと
ファイルを探したりロックしたりする色々なオーバーヘッドがかかるから
それが問題なんじゃないかな?
レジストリは常にメモリに載っかってるから速いんじゃないの?
0540名無しさん@お腹いっぱい。
02/07/27 01:01ID:???ショボくてごめんね。
DFの起動時間を計測した結果、
iniあり:430ms前後
iniなし:460ms前後
実際にワンテンポ遅れる感じがしてる。
ちなみに、計測環境は
PIII1GHz 512MB SDRAM Win2kSP2
LANのプロパティを見ると、起動してから24日と9時間だそうだ。
>>539
iniファイルはすべてレジストリに乗る。
0541名無しさん@お腹いっぱい。
02/07/27 01:02ID:???[OPT]
EDITOR=NOTEPAD.EXE
USEDEF=1
ACTIVE=1
EXTCMD=1
CLOSEQUERY=1
[FONT]
DIRBOLD=1
DIRBLACE=0
の102バイト。
0542名無しさん@お腹いっぱい。
02/07/27 01:06ID:???意味不明だ。
キャッシュに訂正。
これだと、iniが遅いという測定にしかなっていないけど、
レジストリが遅いという意見は出てないから構わないよね。
測定して比べろと言うのなら、適当にiniとレジストリで速度差計ってみるけど。
ちなみに、上の測定に使ったソースの要点部分だけ出す。
timeBeginPeriod(1);
t = timeGetTime();
ShellExecuteEx(&shei);
WaitForInputIdle(shei.hProcess, INFINITE);
printf("%dms\n", timeGetTime() - t);
timeEndPeriod(1);
0543名無しさん@お腹いっぱい。
02/07/27 01:16ID:???自分でレジストリアクセスとiniアクセスをして時間測った方がいいと思う。
0544名無しさん@お腹いっぱい。
02/07/27 01:47ID:???テスト用コード書いてやってみた。[Win98SE、Pen2 333MHz]
それぞれ 10000回データを読み出して timeGetTimeで時間計測。
数字は int型の数字、文字は 11バイトの文字列。
平均を取った大体の所要時間は...
□INI(win.ini[約11kB] の最後のほうのデータを読む)
数字:約3600ms
文字列:約3150ms
□レジストリ(HKCU\software\testというキーの下に値を作成)
数字:約60ms
文字列:約60ms
0545名無しさん@お腹いっぱい。
02/07/27 01:54ID:???HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping
にキャッシュされてるから普通に同じサイズの
プライベートなiniから読む場合はもっと遅くなるんじゃない?
0546名無しさん@お腹いっぱい。
02/07/27 02:01ID:???0=00000000000000000000
(略)
999=00000000000000000999
上の形式で、GetPrivateProfileString()の1000回ループで計測。
0〜999を順に取得 4200前後
0のみ取得 3900ms前後
999のみ取得 4500ms前後
レジストリ
0〜999を順に取得 200ms前後
0547546
02/07/27 02:02ID:???0548名無しさん@お腹いっぱい。
02/07/27 02:04ID:???■ このスレッドは過去ログ倉庫に格納されています