レジストリ vs プライベートINI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/22 18:00ID:kWO77Burプログラマの視点から、逆にユーザの視点から、
それぞれの利点や欠点について意見を聞かせてください。
0566560
02/07/27 03:33ID:???0567名無しさん@お腹いっぱい。
02/07/27 03:35ID:???W2KSP2, P!!!933MHz/512MB/440BX
でiniが無い状態で450ms、一度実行してiniに記録されてる状態で550ms程度だったよ。
0568567
02/07/27 03:39ID:???最適化無しにしても20msくらい遅くなるだけ(timeBeginPeriod(1)使用)。
0570名無しさん@お腹いっぱい。
02/07/27 03:46ID:???560の環境がおかしい。
0572560
02/07/27 04:10ID:???使っていないNSWをアンインストールしたらパフォーマンスが600ms程度まで上がりました。
あとはアンチウイルス系2つ常駐させてるんで、これをはずせばまともなパフォーマンスでるでしょう。
Norton氏ねって感じです
0573名無しさん@お腹いっぱい。
02/07/27 12:15ID:???INIは1回目の READのときはディスクキャッシュに無いから、
相当遅くなることもあるし。
0574名無しさん@お腹いっぱい。
02/07/27 13:00ID:???テスト内容は、
IniFileのエントリ数の違いによる時間の変化。
面倒臭かったからそれぞれ一回ずつ。
左がエントリ数(1のときはエントリ数2個、50の時は51個ね^^;)
開発環境はDelphi
あらかじめ乱数を発生させ、WriteIntegerにて書き込み。
こんな感じ
TC := TimeGetTime;
IniFile := TIniFile.Create(ChangeFileExt('.\'+intToStr(b), '.ini'));
for i:=0 to b do
IniFile.WriteInteger('TEST', IntToStr(i), iwork[i]);
IniFile.Free;
1: 10 ms
50: 90 ms
100: 230 ms
150: 371 ms
200: 531 ms
250: 671 ms
300: 891 ms
350: 1041 ms
400: 1262 ms
450: 1512 ms
500: 1773 ms
550: 2023 ms
600: 2333 ms
650: 2594 ms
700: 2874 ms
750: 3255 ms
800: 3875 ms
850: 4056 ms
900: 4446 ms
950: 4877 ms
1000: 5168 ms
0575574
02/07/27 13:02ID:???1: 0
50: 50
100: 161
150: 210
200: 280
250: 371
300: 461
350: 560
400: 661
450: 982
500: 861
550: 951
600: 1082
650: 1162
700: 1241
750: 1412
800: 1563
850: 1692
900: 1793
950: 1932
1000: 2023
0576574
02/07/27 13:05ID:???1000で10.5kbyte
あと俺の環境は
Cele535 Mem256 2kSP2。
エントリ数が300くらいまで(約3k)ならiniで十分なんじゃないの?
0577名無しさん@お腹いっぱい。
02/07/27 13:44ID:???0578名無しさん@お腹いっぱい。
02/07/27 13:55ID:???だったかな? 最低でも 33ms、本当は 20msくらいでないとダメ...だっけかな?
0579名無しさん@お腹いっぱい。
02/07/27 17:29ID:???使うソフトにもよるが、
500ms程度じゃぁソフト本体の起動時間を考えると大した影響はないだろ。
0580名無しさん@お腹いっぱい。
02/07/29 04:57ID:???> 書き込みできないなら、そのプログラムのフォルダだけ必要なアクセス許可与
> えてくれ、と、運用する側に頼るのは甘えすぎだろうか?
甘えすぎだと思う。やるならそれぐらいインストーラーがやってほしい。
でも複数ユーザーが共有するプログラムのフォルダに下手に書き込み権限を
与えるとトロイを仕掛けることが可能になってしまうのであまりやりたくない。
それにその方式だと移動プロファイルやドメインユーザーにも対応できない。
個人的には、運用によるカバーが許されるのなら素直にプログラム自体を
%USERPROFILE%配下にインストールするよう促したほうがいいと思う。それなら
プログラムはマルチユーザー対応のために何もする必要はないし、ユーザーに
とってもわけのわからない設定をいじる必要がなく直感的でわかりやすい。
XP Homeではセキュリティ設定を変更するにはcacls.exeを使うしかないし。
0581名無しさん@お腹いっぱい。
02/07/31 11:51ID:???#include <windows.h>
#include <stdio.h>
#include <mmsystem.h>
#include "Profile.h"
#pragma comment(lib, "winmm.lib")
int main()
{
char key[256], buf[256];
DWORD t = timeGetTime();
Profile_Initialize("c:\\test.ini", TRUE);
for (int i = 0; i < 1000; i++) {
sprintf(key, "%d", i);
sprintf(buf, "%020d", i);
Profile_WriteString("0", key, buf, "c:\\test.ini");
}
Profile_Flush("c:\\test.ini");
Profile_Free();
printf("%dms\n", timeGetTime() - t);
}
WritePrivateProfileString
5818ms
5487ms
5517ms
Profile_WriteString
180ms
190ms
180ms
他にiniファイルをアクセスする代替ライブラリあれば計測きぼん
0582名無しさん@お腹いっぱい。
02/08/01 01:32ID:dbEqUfqN環境教えて。
VirusBusterやNortonが常駐しているかとかも。l
WritePrivateProfileString1000回だけど、
400ms前後で終わる環境と数秒かかる環境があるようだ。
>>567によるとW2KSP2の環境でも速いこともあるようだし。
0583名無しさん@お腹いっぱい。
02/08/01 08:10ID:M/bkE2i4今更ながら。
「フールセール」って何?
(「フェイルセーフ」「フールプルーフ」なら聞いたことあるんだけど。)
0584名無しさん@お腹いっぱい。
02/08/01 08:30ID:???0586名無しさん@お腹いっぱい。
02/08/01 10:24ID:???レジストリをバックアップする
バッチが欲しい
探すのが面倒
0587名無しさん@お腹いっぱい。
02/08/02 21:56ID:???0588名無しさん@お腹いっぱい。
02/08/02 23:07ID:???とくに、
レジストリに登録する情報が
アプリの追加と削除だけとか、
アプリのポジション情報だけとか、
邪魔なだけ。
それと、どうしてもレジストリに登録する必要があるんなら、
分かりやすい名前で登録して欲しい。
今日たまたまレジストリ開いてみたんだが、
「\TurboPower\APRO\」ってなんじゃ?
これじゃぁ検索のかけようもないじゃないか!
どうせ弄くるんだったらついでに
ソフトのフルネームを入れたキーとか作っておいて欲しい。
0589名無しさん@お腹いっぱい。
02/08/03 16:40ID:???レジストリ使う場合でも HKCU\Software\ 以下ならあんま気にならないけど、
その場合でもそのことを readome.txt 等に明記して欲しい。
0590名無しさん@お腹いっぱい。
02/08/03 16:54ID:???0591名無しさん@お腹いっぱい。
02/08/27 20:40ID:yVdvCA5t0592名無しさん@お腹いっぱい。
02/08/27 20:44ID:???0593名無しさん@お腹いっぱい。
02/08/28 08:22ID:???ViXの設定保存をINIからレジストリに変えたら起動が早くなったので、起動に
時間のかかるようなソフトは選択出来るようにしてホスィ
0594名無しさん@お腹いっぱい。
02/08/28 12:11ID:???禿同。
でも、INIばかでかくても最近はそこまで気にならんよ。
ここにいてるヤツも結構タブブラウザ使ってるだろうけど、
起動に物凄いストレス感じるヤツいてるか?
最近のタブブラウザの大半はINIだろ。
みんな大した文句言わずに使ってるじゃん。
Donutにいたっては「軽い」っていわれてんだぜ?
俺は現在のメインはSleipnirだけど、
アレほど設定をバカスカ書くヤツもそうそうないだろ。
それでもそれなりの起動スピードを実現してる。
ようは「早いから」ってだけでレジストリ使用するやつは
面倒くさいからだけなんだろうね…
0595名無しさん@お腹いっぱい。
02/08/28 16:35ID:???それだけで体感できるパフォーマンスの低下が起きると思うが
0596名無しさん@お腹いっぱい。
02/08/28 16:35ID:???>面倒くさいからだけなんだろうね…
なんでコイツはこんなに偉そうなんだろう…?
使わなきゃいいじゃん。
0597名無しさん@お腹いっぱい。
02/08/28 19:38ID:???スレタイに「VS」って書いてるじゃん。
目暗か?
そんなことを言ってずにスレの流れも悪くなってきてんだから
もう少し建設的な意見を述べたらどうだ?
お題
「INIでスピードを殺さない方法とDonutが何故早いのか」
まずはDonutがレジストリ派に代わった場合どうなるか。
見違えるほど早くなるんだろうか。
それともそんなに変わらないだろうか。
0598名無しさん@お腹いっぱい。
02/08/28 19:54ID:???レジストリ使うソフトがINI使うようになったらどれくらい遅くなるのかどうかということだけどな。
多機能なエディタとか。
0599名無しさん@お腹いっぱい。
02/08/28 21:24ID:???それが実用的なスピードだったらそれでいいわけで…。
それに、エディタとかブラウザみたいに一回立ち上げたらそうそう消すことないんだから、
それ程起動スピードなんて気にする必要はないと思う。
0600名無しさん@お腹いっぱい。
02/08/28 22:01ID:???vs はレジストリとiniの利便性や速度、開発側の手間も含めた比較などだろ?
レジストリを使ったソフトを作ってる作者をめんどくさがりだって言うのはどうかと。
レジストリは利用手順が煩雑なんで、どっちかというとレジストリの方がめんどくさい。
マルチユーザーなどを考えると過去にも出てきたように、iniが面倒になる(唯一絶対の解が無い)
…まぁ、一度ラッパーを作ってしまえば良いことなんだが。
>「INIでスピードを殺さない方法とDonutが何故早いのか」
iniでスピードを殺さない方法
>iniにコメントを含め極力何も記述しない事。
>速度に問題が出るほどたくさんのプロパティを一度に読むようにしないこと。
Donutが速い理由
>実際問題として、通常サイズでのiniのオーバーヘッドはたいしたこと無いし、
>頻繁に起動終了を繰り返すアプリでもないから、気になることがない。
0601名無しさん@お腹いっぱい。
02/08/28 22:03ID:???SDIだったら頻繁に立ち上げることになると思うが?
0602名無しさん@お腹いっぱい。
02/08/28 22:17ID:???0603名無しさん@お腹いっぱい。
02/08/28 23:46ID:???> Donutが速い理由
比較対照がIEだからじゃないのか?
0604名無しさん@お腹いっぱい。
02/08/29 00:43ID:???相対速度じゃあんまり参考にならないよな
0605名無しさん@お腹いっぱい。
02/08/29 14:14ID:???スタートページ表示しないようにしたときの
起動速度は実用には耐えがたい速度なのか?
俺は十分に実用的な速度だと思うぞ。
0606名無しさん@お腹いっぱい。
02/08/29 16:20ID:???0607名無しさん@お腹いっぱい。
02/08/29 22:06ID:???それはソフトによるだろ。
ブラウザなんかは別に0.5秒かかろうが1秒かかろうが大して気にならないが、
たとえば付箋紙とかメモソフトでメモを記入できるようになるまでに0.5秒かかったらイライラする。
起動した瞬間、ホットキーを押した瞬間に即座に入力可能になっていないと、使えないだろ。
0608名無しさん@お腹いっぱい。
02/09/13 02:00ID:J1HjTVjI0609名無しさん@お腹いっぱい。
02/09/13 02:28ID:???マルチユーザーはどうすんの?
0610名無しさん@お腹いっぱい。
02/09/13 03:36ID:???マルチユーザは「必 要 な い」
マルチユーザを考える必要のないソフトに
マルチユーザのためだけにレジストリを弄られるのは
「迷 惑」
0611名無しさん@お腹いっぱい。
02/09/13 03:38ID:???0612名無しさん@お腹いっぱい。
02/09/13 04:07ID:???何も知らない/Power権限もらえないユーザーにも設定を強要するの?
0613名無しさん@お腹いっぱい。
02/09/13 20:17ID:???0614名無しさん@お腹いっぱい。
02/09/13 20:41ID:???0615名無しさん@お腹いっぱい。
02/09/13 21:21ID:???よ っ ぽ ど 迷 惑
0616名無しさん@お腹いっぱい。
02/09/13 21:24ID:???たいていのユーザーは設定がどこに保存されるかなど気にもとめない。
0617名無しさん@お腹いっぱい。
02/09/13 21:40ID:???基地外は大抵自分が標準的な考えだと思うものだ。
0618名無しさん@お腹いっぱい。
02/09/13 21:41ID:???Microsoftも基地外だといわれたら反論できんが(w
0619名無しさん@お腹いっぱい。
02/09/13 21:43ID:???大規模なソフトはレジストリ。
0620名無しさん@お腹いっぱい。
02/09/13 23:43ID:???そのソフトに本当にマルチユーザ必要かちゃんと検証しれ。
INIでどうしてもアホみたいに重くなるなら、
読み込みのタイミングを分散させるとかして実用に耐え得るようにしれ。
検証に検証を重ねた上どうしてもレジストリが必要ならば
ユーザでINIかレジストリかを選べるようにしれ。
あと、インストーラやめれ。
インストーラ使うなら使わない版も同時に用意しれ。
0621名無しさん@お腹いっぱい。
02/09/13 23:46ID:???0622名無しさん@お腹いっぱい。
02/09/13 23:53ID:???インストーラ無しでしれーっとレジストリ使うソフトは
再セットアップの時についレジストリのバックアップしそこねてしまう。
0623名無しさん@お腹いっぱい。
02/09/13 23:55ID:???おまえ馬鹿だ、このスレ読んでないのか?
マルチユーザー環境で使われる可能性のないソフトならそれでも良いが、
NT系で使われるならProgram Files以下はデフォルトじゃ通常のユーザーで読み書き出来ないんだから、
iniファイルを作れないんだよ、ボケ。
0624名無しさん@お腹いっぱい。
02/09/14 00:59ID:???初心者とかファイル整理によっぽど物臭なヤツじゃない限り
インストーラ使わないようなソフトを
わざわざProgram Files以下に置くか、ボケ。
しかもちゃんと「INIかレジストリか選べるように」って書いてるだろ。
お前が馬鹿だよ。
0625名無しさん@お腹いっぱい。
02/09/14 01:11ID:???0626名無しさん@お腹いっぱい。
02/09/14 01:16ID:???その初心者が一番のネックだと言うことが分からんのか
初心者じゃなければ自分でフォルダの権限設定できる
0627名無しさん@お腹いっぱい。
02/09/14 03:03ID:???初心者が一番楽。
よく分からんソフトには手を出さない。
手を出したソフトは初期設定から弄らない。
何よりレジストリとかINIとかで文句言わない。
>>625
あんたが偉そうなのはナゼ?( ´,_ゝ`)
0628名無しさん@お腹いっぱい。
02/09/14 08:22ID:???0629名無しさん@お腹いっぱい。
02/09/15 02:48ID:???スレ、DAT落ちしちゃった?
0630名無しさん@お腹いっぱい。
02/09/15 04:37ID:???0631名無しさん@お腹いっぱい。
02/10/03 02:25ID:olEUSkmiもちろんreadmeには「フォルダを削除するだけで結構です」と書いておく(w
0632名無しさん@お腹いっぱい。
02/10/03 03:49ID:???文句言わないんならレジストリでいいじゃん。
設定が保存できないとか変なエラーが出るのには文句を言うと思うぞ。
0633名無しさん@お腹いっぱい。
02/10/03 04:00ID:???レジストリが嫌って理由はなんだかんだ言っても
「アンインストール時に全ユーザの設定が消されない」
これに尽きる。もうこのスレのだいぶ前の段階で尽きてる。
これが解消されない限り話はループだね。
逆にこれが解消されれば即解決。
0634名無しさん@お腹いっぱい。
02/10/03 04:13ID:???消すと叩かれまくりなのに
レジストリだと逆に全部消せとかいう人が多いのが不思議
0635名無しさん@お腹いっぱい。
02/10/03 04:18ID:???0636名無しさん@お腹いっぱい。
02/10/03 04:20ID:???バリバリカスタムしていた.bashrcを問答無用で全部消されたら
ふつー怒ると思うんだが
全ユーザーのレジストリを消すってそういうことじゃないの?
0637名無しさん@お腹いっぱい。
02/10/03 04:23ID:???それをアンインストーラで「全ユーザの設定を消しますか?」とかなんとか
選択できればいいってのがだいぶ前のレスで既出
0638名無しさん@お腹いっぱい。
02/10/03 04:26ID:???あとはそれを実行するかどうかなんだが、悲しいかな、ここはム/マ板ではなくソフト板・・・
0639名無しさん@お腹いっぱい。
02/10/03 09:45ID:???あと300以上も話すだけのネタがあればの話だが
0640名無しさん@お腹いっぱい。
02/10/03 13:31ID:???0641名無しさん@お腹いっぱい。
02/10/03 16:15ID:???削除していいかどうかは管理者ではなく各ユーザーに
確認を取るべきだと思うがどうか
これはがいしゅつじゃなかったような…
0642名無しさん@お腹いっぱい。
02/10/03 18:40ID:???じゃあ管理者が各ユーザーに「消してもいいですかぁ?」とアンケートでも取って
管理者の責任においてやれ。
判断に迷うなら設定を残せばいい。
残したって今までのレジストリの使い方と同じになるだけだから問題ない。
第一、ソフト使用の責任は使用者にあるんだから、管理者がどう使うか
(そしてどうアンインストールするか)までめんどう見きれんよ。
0643名無しさん@お腹いっぱい。
02/10/03 19:11ID:???http://www.geocities.co.jp/Beautycare/4965/public/ex_uninstaller.html
0644名無しさん@お腹いっぱい。
02/10/03 19:14ID:???ログオンのタイミングでレジストリへの追加や削除が走るようにはできないの
なんかIEはそういう動作をしてる気がするんだけど
0645名無しさん@お腹いっぱい。
02/10/03 19:26ID:???1.通常のアンインストール
2.各ユーザーの設定もすべて削除する
3.各ユーザーに選択させる
の三択オプションてことかぁ・・・。誰か作れないかなぁ。
0646名無しさん@お腹いっぱい。
02/10/03 23:37ID:???メンドイのでマルチインストールでいいやんって気分になる。
ってのが何時ものループだっけ?
0647名無しさん@お腹いっぱい。
02/10/17 01:06ID:pyIojNzFありがとう。Gmaskの設定が消せたよ。
インストールしたフォルダにini吐かないからレジストリだと
ばかり思って探していた。
一向に見つからないので検索したらこのスレが見つかった。
WIN.INIとは・・・
レジストリでもINIでもいいからアンインストールの情報入れ
やヴォケ!昔そんなスレがあった気がしたがDAT落ちしち
ゃったかな?
0648名無しさん@お腹いっぱい。
02/10/17 01:11ID:z2nAXZ8+iniファイルの方がいいんだけど
設定をエクスポートできるならレジストリでも何でも構わないな
秀丸とかレジストリの該当部分をバックアップできるし
0649名無しさん@お腹いっぱい。
02/10/17 10:01ID:???システム不調の原因まで一緒にバックアップしてしまう諸刃の剣だが
0650名無しさん@お腹いっぱい。
02/10/19 16:13ID:ghFUUOt4ヒストリとかフォルダのパスをINIに書くんじゃねええ
って事だ。
0651サテラ印
02/10/19 17:08ID:???保存先が記述してあるか
最低でもわかりやすい名前ならいいんだけどな
IRIAが一番いいよな
レジストリ使ってるけどレジストリがサラの状態でも
初回起動時に勝手に修復してくれるし
0652名無しさん@お腹いっぱい。
02/10/19 18:59ID:Rr/Tp/INどこに書けと?
0653名無しさん@お腹いっぱい。
02/10/19 21:23ID:???0654名無しさん@お腹いっぱい。
02/10/19 21:57ID:???フリーソフト作ったときは書いてる。
シェアウェアの時は書かないYo(w
0655名無しさん@お腹いっぱい。
02/10/19 22:01ID:ghFUUOt4デフォルトで解凍先のパスをINIとかに書き込むカスツールが
多いんだが、そういうのは駄目だと思う。まずはexeのカレント
からサブディレクトリ、プロファイル、外部パスっていうやり方
がいいと思う。大体これで解決だろ。たま〜にショートカットの
作業ディレクトリが空だと%windir%にINIとかログとかばらまくの
もあるね。BlackJumboD○gとか。
0656名無しさん@お腹いっぱい。
02/10/19 22:18ID:???(;´Д`)あれには参った・・・はじめ何が起こったのかと思ったよ・・・
作業ディレクトリが未指定だと起動しないソフトも有る。プログラマがウンコ
0657名無しさん@お腹いっぱい。
02/10/19 23:43ID:???自己解凍型ソフト?
0658652
02/10/19 23:45ID:Rr/Tp/IN>ヒストリとかフォルダのパスをINIに書くんじゃねええ
一瞬これ読んでエディタとか使ったファイルのヒストリなんぞ何処に残すつもりじゃ?と思ったが、わかった。
ヒストリ=初期設定と関係ないやたら長いデータ(ログとか)
フォルダ=インストールしたフォルダ
こう?エディタとかの10個ぐらいのファイル履歴はOKなわけね。安心した。
たしかにデータの検索しないソフトはウンコだな。
まぁ、インストール後移動しないというのが前提のソフトなんだろうけど。
検索の労力なんてたかだか数行なのに。
0659名無しさん@お腹いっぱい。
02/10/20 00:25ID:???>エディタとか使ったファイルのヒストリ
こういうのは設定のiniファイルに残さないでほしい
違うiniファイルを用意してそっちに書いてほしい
ようするに、バックアップに値するものとそうでないものとを
明確に区分してあればなんでもいいよ
0660655
02/10/20 01:54ID:???>658
>ヒストリ
そのままの意味で、ファイルのヒストリ
中規模なアプリだったらHISTORYファイルとか
作って欲しいな。拡張子はDATがベツト。
他の環境に移すとき俺のPCの
パス丸見えじゃ!っていのは神経質過ぎ?
さっき小規模から中規模までのツールでINI使ってる
奴消去するの疲れた・・・。只単にブチまけたいだけだったりする。
せめてヒストリーのメニューに履歴のクリアとか
付けてホスィ。レジストリはその辺再インストール
すればなくなるから楽っちゃあ楽だね。
>フォルダ
例えばアイコンとかサウンドとか共有する
フォルダも・・・・以下略
カスなツールで2行ぐらいしか項目無いのに
ワザワザINI作ったりすんじゃね〜。バーカバーカ!!
0661名無しさん@お腹いっぱい。
02/10/20 01:57ID:???ふつーレジストリ使わないアプリケーションのアンインストロールっつったら
フォルダごと削除 だろ
あとにはなにも残んねーって
0662名無しさん@お腹いっぱい。
02/10/20 02:26ID:???>>660でやっとわかった。
別にヒストリの拡張子なんて何でもいいと思うが・・・
パス見えても問題ないと思うんだけど、この点はマルチユーザインストールと
話題が被ってくるなぁ。
あとフォルダのパス、要は絶対パスで記録するなってことね。
それはごもっとも。
ってかこれってこのスレの話題?
レジストリだろうとiniだろうと関係ない話題だと思うんだが。
0663名無しさん@お腹いっぱい。
02/10/20 02:33ID:???そういう情報をレジストリに記録したりするソフトも多いから
やだね って感じ
0664652
02/10/20 02:38ID:yPvpnDmDなるほど。バックアップするときにゴミが付いてくるのが嫌なのか。
作る側にとっちゃiniでもdatでもたいして変わんないんだけどね。
ヒストリだけ分けるのは盲点だったわ。
>レジストリはその辺再インストール
これはiniでも再インストールすれば同じと思う。
レジストリでも消さなきゃ消えないし。
>>661
たぶんデータ置く場所が本体以下のフォルダじゃないのかも。
いや、いまいち漏れもわからんが・・・
必要な設定をバックアップできるような仕組みを提供するアプリは
まだ少ないからなぁ。簡単に復帰できるようにするのがベストだろうけど。
で、結局はプログラマの入れ込み次第か(w
0665652
02/10/20 02:40ID:yPvpnDmD0666名無しさん@お腹いっぱい。
02/10/20 03:48ID:???レジストリ+でかいデータはApplication Dataフォルダ
だからなぁ。推奨に従うと逆に環境移行のときの最大のネックになる罠。
と話はこうして無限ループに陥るわけだが・・・
■ このスレッドは過去ログ倉庫に格納されています