C++相談室 part137at TECH
C++相談室 part137 - 暇つぶし2ch1:デフォルトの名無しさん
18/07/14 17:53:02.14 FOAGvAbs.net
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part135
スレリンク(tech板)
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
スレリンク(tech板)
■長いソースを貼るときはここへ。■
 URLリンク(codepad.org)
 URLリンク(ideone.com)
[C++ FAQ]
URLリンク(isocpp.org)
URLリンク(www.bohyoh.com) (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

2:デフォルトの名無しさん
18/07/14 17:55:20.65 FOAGvAbs.net
スレ作ってみましたが、これ設定間違ってますか?
ワッチョイほにゃららが出てきてない。

3:デフォルトの名無しさん
18/07/14 18:42:45.47 p9pW3bxe.net
>>1
スレの立て方は一番上に書いてある。
前スレや関連スレへのリンクも間違ってるぞ。

4:デフォルトの名無しさん
18/07/14 18:59:13.88 tzAF1ivs.net
ヘタクソかよ

5:デフォルトの名無しさん
18/07/14 20:33:07.04 .net
スレ立て苦手か?

6:デフォルトの名無しさん
18/07/14 20:48:45.99 6fifTYMf.net
>>1
ume

7:デフォルトの名無しさん
18/07/14 21:34:02.24 xV7EJA5w.net
前スレの 1N2GRIlb0
ディスクキャッシュに入ってるってずいぶん前からわかってたのに
何でムダな作業をやらせたの?

8:デフォルトの名無しさん
18/07/14 21:38:31.07 1N2GRIlb.net
このスレの知恵遅れたちが
どんだけ頭悪いのかよおく分かっただろ
同じ計算機で2秒で終わるような読みこみ処理で
数十秒かかるとかいってたワケだからな
相当オツムが弱い
このスレは知恵遅れしかいない

9:デフォルトの名無しさん
18/07/14 21:41:09.27 1N2GRIlb.net
いまになって
分かってたとかいいだしてるしな
ディスク読む時間に知ったかぶって調子こいてた知恵遅れは
どこいったの?

10:デフォルトの名無しさん
18/07/14 21:42:37.85 xV7EJA5w.net
ん?
何度も指摘してたけど

11:デフォルトの名無しさん
18/07/14 21:43:13.23 1N2GRIlb.net
嘘コケ
ハゲ
知恵遅れは前のスレ読んで出直してこいや

12:デフォルトの名無しさん
18/07/14 21:45:09.81 1N2GRIlb.net
ハードディスクの内側読みこんで読みこみ時間がどうとかいってた
バカいる?

13:デフォルトの名無しさん
18/07/14 21:45:30.57 xV7EJA5w.net
測らせるならキャッシュに無い状態にしないとアホだろ

14:デフォルトの名無しさん
18/07/14 21:46:18.02 xV7EJA5w.net
はじめはキャッシュに入って無いんだから

15:デフォルトの名無しさん
18/07/14 21:46:29.73 1N2GRIlb.net
むしろなバカが指南した方法やコードでは
キャッシュのっかても数十秒かかってたってことだぞ

16:デフォルトの名無しさん
18/07/14 21:48:09.38 1N2GRIlb.net
このスレで教えを乞うてるヤツは
何度もデバッグで走らせてるハズのに
知恵遅れの方法やコード数十秒かかるってことだ
オレのは2秒かからない
知恵遅れは息してる?

17:デフォルトの名無しさん
18/07/14 21:48:37.29 xV7EJA5w.net
測定した結果は
fgetsの17秒とreadの1~2秒しか無い
普通に読むだけで数十秒なんて測定結果は無い

18:デフォルトの名無しさん
18/07/14 21:49:17.53 1N2GRIlb.net
読み方次第で差は歴然と出る
オレの方法は最適な方法だからな

19:デフォルトの名無しさん
18/07/14 21:50:16.06 xV7EJA5w.net
fgetsは速いとか言ってなかった?
今遅いことが証明されてるのはfgetsだけ

20:デフォルトの名無しさん
18/07/14 21:50:39.19 1N2GRIlb.net
やっぱり知恵遅れはなにも分かってないわ
まず自分が呼んでる関数がどんな動作してるか分かってないからな

21:デフォルトの名無しさん
18/07/14 21:51:14.96 xV7EJA5w.net
何の工夫もないただのreadで2秒なら、
他の方法も読むだけなら2秒

22:デフォルトの名無しさん
18/07/14 21:51:37.65 1N2GRIlb.net
やっぱりこのスレは
相当な知恵遅れしかいない
CもC++も何も分かってない
それ以前の問題

23:デフォルトの名無しさん
18/07/14 21:53:57.67 1N2GRIlb.net
測定結果ででてるからな
相当な速度で速く読みこみたいのに標準関数のファイルポインタ使う知恵遅れなんか
まずいない
ファイルポインタ使う標準関数は
このスレにいる知恵遅れにでも簡単に使えるように
openやread使って使いやすく作ってあるだけだからな

24:デフォルトの名無しさん
18/07/14 21:54:36.27 xV7EJA5w.net
fgetsが速いとか言ってたアホが
readとfreadの差を強調する
オーバーヘッドのオーダーは1
読み込みバッファが常識的なサイズであれば無視できる
fgetsのオーバーヘッドのオーダーはn
バッファサイズによらずオーバーヘッドは無視できない

25:デフォルトの名無しさん
18/07/14 21:55:42.62 1N2GRIlb.net
まずfreadもバッファもってるのすら分かってないからな

26:デフォルトの名無しさん
18/07/14 21:56:36.36 xV7EJA5w.net
freadで測定させれば証明出来るが
で、
もともと測りたかったディスクアクセスの時間は?
まさかキャッシュに入った状態が普通と考えてるわけではあるまい

27:デフォルトの名無しさん
18/07/14 21:56:51.40 1N2GRIlb.net
ファイルポインタがもってるバッファから
いちいちこっちのバッファにコピーしてんのに
まずその程度のことすら分かってない

28:デフォルトの名無しさん
18/07/14 21:57:27.49 1N2GRIlb.net
相当頭が悪いのが
知ったかぶってるのは分かる

29:デフォルトの名無しさん
18/07/14 21:58:58.41 xV7EJA5w.net
測って見ればわかるって
で肝心の


30:解析コードはどうした? 糞遅いコードを自信満々にあげてたけど



31:デフォルトの名無しさん
18/07/14 22:00:01.80 1N2GRIlb.net
クソ遅い?
オレのコードを動かして速度測定したの?
オレより10倍以上低速に作る才能がある知恵遅れのくせに

32:デフォルトの名無しさん
18/07/14 22:03:31.04 xV7EJA5w.net
糞遅い
間違い無い
お前の環境で15GBのテキストを作って解析時間を測ってみな

33:デフォルトの名無しさん
18/07/14 22:10:21.76 1N2GRIlb.net
とりあえず
知恵遅れはほっといて
テストデータをジェネレートするコードを
前スレの内容読んでテキトーに作った
 URLリンク(ideone.com)
baka_genでコンパイルすれば大量のテストデータを作ってくれる優れものだ
※ 指定ギガバイト数越えたら、1つのセクション書ききったら停止する
 使い方
  Usage:baka_gen <fileparh> <GB size>
出力されてる形式に問題がないかみといてくれ
形式が分からないと解析処理を作りようがない
明日からこのテストデータを解析する処理を作る

34:デフォルトの名無しさん
18/07/14 22:11:40.89 1N2GRIlb.net
まず知恵億れはなにと比較して遅いとか書かないからな
オレは知恵遅れが書いたコードより少なくとも10倍以上速い処理を書いてる

35:
18/07/14 22:17:02.80 CBXc6tpD.net
>>32
なんか error がいっぱい出ているようだが…

36:デフォルトの名無しさん
18/07/14 22:17:16.55 xV7EJA5w.net
15GBのテキストの解析で8.6秒
これを越えればいい

37:デフォルトの名無しさん
18/07/14 22:17:46.97 1N2GRIlb.net
なんのエラー書けよ
エラーとかいわれても分かるワケがないだろ
ヴォケ

38:デフォルトの名無しさん
18/07/14 22:18:22.90 1N2GRIlb.net
で、そのコードはったのかオマエは

39:デフォルトの名無しさん
18/07/14 22:19:29.69 xV7EJA5w.net
>>33
fgets 17秒
これは俺じゃない
キャッシュに入ったデータの読み込み時間

ディスクからの読み込み時間
とを比べて10倍とか言ってるの?

40:
18/07/14 22:19:38.05 CBXc6tpD.net
>>36
>>32 URLリンク(ideone.com)
の下の方にいっぱい書いてあるぞ?本当にコンパイルの通るコードなのか?

41:デフォルトの名無しさん
18/07/14 22:20:14.44 1N2GRIlb.net
8.6秒とかテキトーなことなら
なんとでもいえるからな
どんなファイル読んで
どんなソース作ったわけ?
ファイル形式ちゃんとわかってんの

42:デフォルトの名無しさん
18/07/14 22:22:08.48 1N2GRIlb.net
適切なインクルードファイルを上に書けば
間違いなく通る
ココで教えを乞うているバカですら
それぐらいのことやってる
オマエはそれ未満だ

43:デフォルトの名無しさん
18/07/14 22:26:38.36 xV7EJA5w.net
テキストのほとんどが数値の行
10%の割合でx, yの行
セクションは全部で100個くらい
数値は乱数で作成した
実際の分布を考えて、
桁数によって出現率を変えてある
異常データでも不正アクセスしない
文字コードはS-JIS
改行はLFのみ

44:
18/07/14 22:27:16.82 CBXc6tpD.net
>>41
「unknown type name ‘size_t’」がインクルードファイルで直る問題なのか?
ideone に怒られないコードが書けないのか?

45:デフォルトの名無しさん
18/07/14 22:29:41.45 xV7EJA5w.net
数値は符号付き32bitに収まる値で
printf("%d", n);
で出力される文字列と同じ書式

46:デフォルトの名無しさん
18/07/14 22:31:59.85 1N2GRIlb.net
URLリンク(ideone.com)
ヘッダファイルを適切にインクルードしたら
普通にエラーメッセージ消えたぞ
バカはなにをいってるのか意味が分からないワケ

47:デフォルトの名無しさん
18/07/14 22:33:55.81 1N2GRIlb.net
なんか知恵遅れがバカみたいなレスをブ


48:ツブツ書いてるし ごちゃごちゃいってないでコードあげたらどうだ



49:デフォルトの名無しさん
18/07/14 22:35:19.66 xV7EJA5w.net
シングルスレッド、順番に全文字スキャンの処理で
処理時間は1文字平均約2クロック (Haswell)
最適化的にはこれが出発点
さらに高速化する価値がある処理であれば
マルチスレッド,GPU, AVX ...
まだまだ高速化の余地はある

50:デフォルトの名無しさん
18/07/14 22:36:12.81 1N2GRIlb.net
また知恵遅れがテキトーなこといってるしな

51:デフォルトの名無しさん
18/07/14 23:49:17.06 5xFWH4XP.net
残念ながらクソシンタックスが増えれば増えるほどアホでもテクニカルターム使って
アホと思われない活動が可能になって行くんだよ。

52:デフォルトの名無しさん
18/07/15 00:49:14.70 p2p9fdhp.net
>>32,45
サンプルデータ作成コードありがとうございます。
実行してみましたが面白いですねこれ。
完成したら数十ギガのデータ作って遊んでみたい。
サンプルデータができて説明しやすくなったので色々補足させていただきます。
ちょっと細かい内容になるので、今あるサンプルデータ作成コードを
使用されても問題ありません。
文字コードはutf8 or euc-jpの両方を想定しています。
ファイルの1行目に下記行が一度だけ出てきます。
// タイトル、倍率(mag)。(この係数を使って④の数値から割る、正の整数。unsigned int)
::fprintf(fp, "%s %d\x0a", "TITLE_NAME", 2000);
具体的には URLリンク(ideone.com) の64行目に上記が入ります。

②のセクション集計値は個数が0のときがある。その時はテキスト行だけで終わり。
0 0 1 Jul~
TEXT TEXT TEXT TEXT
③のテキスト行は日本語(2byte)が来ることがある。
>つづく

53:デフォルトの名無しさん
18/07/15 00:54:03.20 p2p9fdhp.net
QQ行の説明
QQ subname -1 0 0 1 -21000000 600000 2
→この行が無いファイルもある。
→7,8カラムは1行目の倍率数字で割る(数値行と同じ計算)
→3~6カラムは -1, 0, 1, のいずれか。この4つの組み合わせであとで計算に使うことがある。
1 0 0 1 →TYPE_A
0 1 -1 0 →TYPE_B
-1 0 0 -1 →TYPE_C
0 -1 1 0 →TYPE_D
-1 0 0 1 →TYPE_E
0 -1 -1 0 →TYPE_F
1 0 0 -1 →TYPE_G
0 1 1 0 →TYPE_H
→9カラム目は正の整数。(unsigned int)
→下記6つのバリエーションがあります。
QQ subname
QQ subname c
QQ subname -1 0 0 1 -21000000 600000
QQ subname -1 0 0 1 -21000000 600000 2
QQ subname c -1 0 0 1 -21000000 600000
QQ subname c -1 0 0 1 -21000000 600000 2
※cはcという文字列固定
※1つのファイルに存在するのはいずれか1つのフォーマット
そして少し複雑なのが、上記QQ行は先頭のQQがなくなってx, y行に存在することがあります。
1つのファイル内でQQ行とx, yの後ろにくるパターンの両方は存在せず、片方が出てきたらもう片方は出てきません。
x, yと同じ行にくる場合のフォーマットもQQ行の規則と同じです。
x 1 234 subname -1 0 0 1 -21000000 600000 2
y 2 234 subname -1 0 0 1 -21000000 600000 2
>つづく

54:デフォルトの名無しさん
18/07/15 00:58:25.78 p2p9fdhp.net
最後にRR行があります。
これもQQ同様x, yの次の行にあったりなかったりします。
QQとRRが一緒に出てくることは無いと思います。
フォーマットは「RR 正の整数」でQQのようにx,yの後ろに来ることはありません。
x 1 2
RR 3
11 11 11 11
11 11 11 11
↓QQ、RRが一緒に出てくることは無い。
x 1 2
QQ subname c -1 0 0 1 -21000000 600000
RR 3
↓これも無い
x 1 2 RR 3
>つづく

55:デフォルトの名無しさん
18/07/15 01:02:10.59 p2p9fdhp.net
参考として、ファイルを読み込んだら下記のt_all_dbのような構造体にすべて保管しようと考えています。
型や名前は最適なものに変更されて問題ありませんし、他に最適な
格納方法があればそれでも問題ありません。
typedef struct __tag_rr_db {
 unsigned int rr_num;
} t_rr_db;
typedef struct __tag_qq_db {
 char qq_name; //subname
 bool is_c; //cがあるかないか
 QQ_TYPE qq_type;
 float numbers; // 2つの数字のリスト(vector?)
 unsigned int count; //最後尾の数字
} t_qq_db;
typedef struct __tag_elem_db {
 ELEM_TYPE elem_type; // x or y
 unsigned int no; // x or yの番号
 unsigned int num_line_count;
 t_qq_db qq_db;
 t_rr_db rr_db;
 numbers; //数値行のリスト(vector?)
} t_elem_db;
typedef struct __tag_section_db {
 unsigned char name;
 unsigned int num_1;
 unsigned int num_2;
 unsigned int text_line_count;
 texts; //テキスト行(vector?)
 t_elem_db elem_dbs; //elem_dbのリスト
} t_section_db;
typedef struct __tag_all_db {
 title_name; mag; section_dbs; //section_dbのリスト
} t_all_db;

56:デフォルトの名無しさん
18/07/15 01:59:33.70 lbsq5rUe.net
そろそろ「ぼくちんのログ解析ソフトを名無しどもに作らせるスレ」でも立ててそっちでやってくれないか

57:デフォルトの名無しさん
18/07/15 02:07:19.29 eimWnm2X.net
いい加減にしろよお前
土方コーダに発注する気分でてめえのクソログの仕様ドヤ顔で書いてんじゃねえよ
ありったけスレ私物化して相談しまくったんだからそろそろ自分の手と頭を動かしたらどうだ

58:デフォルトの名無しさん
18/07/15 02:58:06.76 F1eG7opL.net
ID:p2p9fdhp さん、別のスレに移動を願います。

59:デフォルトの名無しさん
18/07/15 04:38:00.97 deogSIs/.net
ume進行だと思えば悪くない
続けて
ていうか徹底的にやれ
ていうかディスクキャッシュのサイズと読込サイズの理想的な関係は微妙なもんじゃわ;
HDD周りのキャッシュには次の3階層ある
(1) 1トラック内のランダムアクセスではHDDだと平均的に1/2回転分の時間待たされるから、
  HDD側であらかじめ1トラック分はキャッシュする
(2) シークでは今日日のCPUの速度からみて地質年代レヴェルの遅延が生じるから、
  OSにとって都合の良いサイズ(ページサイズとか)を単位とする単位でキャッシュされる
(3) で、その上に標準入出力のバッファがある(setvbuf()で調整できるのはこれ
SSDだと(1)が書き換え回数最適化絡みのキャッシュに置き換わるが、(2)や(3)は同じ
高速化には(3)のバッファリングやアプリ側の処理というものと、(2)と(1)のキャッシングをいかに並行動作させるかがキモすぐる
fgets()とfread()の速度差は、単一ファイルをシーケンシャルアクセスするときは言うほど開きはない(上のしくみから導ける
一方、複数ファイルを交互にアクセスしたりHDDのまちまちな場所をランダムアクセスしだすとたちまち顕在化する(これも上のしくみから導ける
単一ファイルの読込であっても、アプリがファイルの一部を読み込んで考え込む、の繰り返しなパターンならば
アプリ側のマルチスレッド化が有効な「こともある」 今回は該当しないと思うが、、

60:デフォルトの名無しさん
18/07/15 05:01:06.13 EFpmUWpC.net
てな議論はベアメタルでやるならともかく
依存処理系では特定OSの話になるし
抽象化されたハードウエアじゃ特性を仮定すること自体ナンセンス

61:デフォルトの名無しさん
18/07/15 06:33:31.92 F1eG7opL.net
>>57
申し訳ありませんが、C++と関係がない話は、他のスレでやってください。よろしくお願いします。
お気を悪くなされませんよう。

62:デフォルトの名無しさん
18/07/15 11:31:30.36 Y0/Ay92k.net
unsigned int l = -1;
cout << l << endl;
cout << (signed int)l << endl;

4294967295
-1

int m = 4294967295;
cout << m << endl;
unsigned int n = 4294967295;
cout << n << endl;

-1
4294967295

63:デフォルトの名無しさん
18/07/15 11:32:24.73 Y0/Ay92k.net
>>60
unsigned int l = -1;
int m = 4294967295;
がエラーにならないのはなぜでしょうか?

64:デフォルトの名無しさん
18/07/15 11:45:15.02 Y0/Ay92k.net
URLリンク(codepad.org)
↑は、ロベールの本に載っているコードです。
friend class ValueFactory;
//friend Value* ValueFactory::New(int n) const;
↑これを
friend class ValueFactory;
//friend Value* ValueFactory::New(int n) const;
と変更するとなぜコンパイルエラーになってしまうのでしょうか?
ロベールの本には、「不完全型」というのを利用する必要があると書いてあります。
friend class ValueFactory;
↑これはなぜ「不完全型」を使わなくてもOKなのでしょうか?

65:デフォルトの名無しさん
18/07/15 11:51:25.65 kDEFN2k+.net
解釈が間違ってる
ValueFactoryの実体を作って返すためにはすでに定義が分かってないといけない(完全型でないといけない
対してfriend宣言は名前だけ分かってればいい(定義がまだ無い(=不完全型)でいい
というだけの話

66:はちみつ餃子
18/07/15 11:59:00.99 HERu1+Fl.net
>>61
暗黙のキャストのせい。
整数リテラルに型を表す接尾辞がつかない場合は原則として int として解釈されるけど、
int の範囲より大きい場合はそれを表せる最低限の整数型として解釈されるんだったはず。
整数型の初期化 (代入) の右辺に現れた値が左辺の型で表せるときはそのままの値であることが保証されるが、
そうでないときは一定の規則に従って縮小される。
縮小の仕方は、
左辺が unsigned のときは、左辺の型が表せる最大値に 1 足した数で右辺の modulo を取った値が左辺に入る。
左辺が signed のときは未定義。
なので、 (int が 32 ビットの大きさをもつとき) unsigned int l = -1; が 4294967295 になるのは規格通りだが、
int m = 4294967295; が -1 になるのは保証されない。
規格を確認せずに記憶で書いてるので、
もし間違ってたら誰か指摘よろー。

67:デフォルトの名無しさん
18/07/15 12:01:48.69 WB6myqsz.net
c++で文字列のバイナリ読み書きで質問があります
vector<string> moji = {"aaaaaa", "bbbbbb", "ccccccccc"};
ofstream ofs2("mojibin.bin", std::ios_base::out | std::ios_base::binary);
for (int i = 0; i <= 2; i++) {
ofs2.write(moji[i].c_str(), strlen(moji[i].c_str()));
}
書き込みは、エラー無くできるのですが
ifstream ifs2("mojibin.bin", std::ios_base::out | std::ios_base::binary);
for (int i = 0; i <= 2; i++) {
ifs2.read((char*)&moji[i], strlen(moji[i].c_str()));
cout << "(" << i << ")" << moji[i] << " ";
}
読み込みは、読み込んで表示も出ますが
何かエラーが出ます
どうしてでしょうか

68:デフォルトの名無しさん
18/07/15 12:06:41.50 lbsq5rUe.net
書き込んだものに区切り入れてないけどそれでいいの?

69:デフォルトの名無しさん
18/07/15 12:11:00.69 Y0/Ay92k.net
>>63
ありがとうございます。
ソースコード全体をコンパイラがみれば定義も分かるのに、なぜコンパイルエラーにするのでしょうか?
>>64
ありがとうございました。

70:デフォルトの名無しさん
18/07/15 12:12:20.49 Y0/Ay92k.net
>>63
例えば、 Python では、相互に参照していてもOKです。

71:デフォルトの名無しさん
18/07/15 12:15:07.36 Y0/Ay92k.net
コンパイラーについての知識がないと理解しにくい部分でしょうか?

72:デフォルトの名無しさん
18/07/15 12:15:22.56 WB6myqsz.net
>>66
なにか、ヌル文字を読み込もうとしてるエラーのようで
なるほど、区切り文字というのを入れて
getlineとかを使用して読み込んでいくべきなのかな・・・・

73:デフォルトの名無しさん
18/07/15 12:50:13.08 WB6myqsz.net
とりあえず、区切り入れてgetlineで一行ずつ読み込めました
vector<string> moji = {"aaaaaa", "bbbbbb", "ccccccccc"};
ofstream ofs2("mojibin.bin", std::ios_base::out | std::ios_base::binary);
for (int i = 0; i <= 2; i++) {
moji[i] += "\n";
ofs2.write(moji[i].c_str(), strlen(moji[i].c_str()));
}
ifstream ifs2("mojibin.bin", std::ios_base::out | std::ios_base::binary);
string temp;
int i = 0;
while (getline(ifs2, temp, '\n')) {
cout << "(" << i << ")" << temp << " ";
i++;
}
これでまたvector<string>に入れたらいいか
c++はHSPとかと違って難しいですね

74:デフォルトの名無しさん
18/07/15 13:00:44.43 oGr67yTf.net
>>70
&moji[i]はstringインスタンスの格納先アドレスであって、中に格納されている文字列データの先頭ではないよ。
無理やりやるなら
ifs2.read(const_cast<char*>(&moji[i].data()), moji[i].length());
とかすれば動くと思うけど
>>71
文字列以外も書き込みだしたら\nと競合するけどいいの?
getline使うならbinaryモードは使うべきでないと思うし、そもそも文字列しか書き込まないならbinayモードにする必要ある?

75:デフォルトの名無しさん
18/07/15 13:02:49.96 oGr67yTf.net
あとエラー出力は正確に書いてくれないと、コード全部読まないといけないからしんどいです…

76:デフォルトの名無しさん
18/07/15 13:18:02.66 lbsq5rUe.net
>>67
C++はそういうコンパイルの仕方しないから
cppごとにオブジェクトファイル(クラスのインスタンスとしてのオブジェクトとかとは別の意味)というのを作ってから
オブジェクトファイル同士のリンクという作業をして目的の実行バイナリを作る
オブジェクトファイルは自分自身で完結してないといけないので、
「ValueFactoryとかいうクラスのポインタ」「ValueFactoryとかいうクラスがfriendだという情報」は持つことが出来るけど
(別のファイルがValueFactoryの実体を持ってると期待して)
ValueFactoryの実体作れとか実体使ってなんかやれ(そういう実行コードを保持しろ)と言われたら困ってしまうってこと

77:デフォルトの名無しさん
18/07/15 13:19:42.19 WB6myqsz.net
>>72
数字の配列はバイナリでエラー無いので
やはり、文字列はテキストに出力したほうがいいんかな
>>73
今度からはそうします
すみませんでした

78:デフォルトの名無しさん
18/07/15 13:42:15.67 oGr67yTf.net
もちろんバイナリ形式でもいいのだけど、その場合は文字列を固定長にするとか、tlv形式で作ってみては?
URLリンク(en.m.wikipedia.org)

79:デフォルトの名無しさん
18/07/15 14:56:48.40 p2p9fdhp.net
大規模ファイルの読み込みについて相談しているものです。
以下調査結果です。
ファイルは上記で13GBのファイル生成したものを使用
URLリンク(ideone.com)
①下記コードの結果
URLリンク(ideone.com)
512,15 →15秒
1024,7 →7秒
2048,5 →5秒
4096,3 →3秒
8192,2 →2秒
>つづく

80:デフォルトの名無しさん
18/07/15 14:58:34.48 p2p9fdhp.net
②作成した下記コードでテスト。 →約2秒
URLリンク(ideone.com)
(整理できておらず、かなりぐちゃぐちゃなコードですが。。)
内容:freadのみ
③上記②で、「#define READ_MODE 1」で実行 →約25秒
内容:改行単位にするため、前スレ962の下記Cを対応したつもりのもの
A. 1行全体が連続してバッファに存在しなくてもいい作りにする
B. リングバッファ
C. fseekでファイルポインタを戻してから読み込む
D. あまりをmemcpyでバッファの先頭にコピーしてから読み込む
E. ほか
④上記②で、「#define READ_MODE 2」で実行 →約60秒
内容:上記③+解析
⑤fgetsのみ →約15秒
if((fp=fopen(file_path, "r"))==NULL)


81:{  printf("ファイルを開けません。%s",file_path);  return 0; } char tdata[10000]; char* data = tdata; while( fgets(data,10000,fp) != NULL ){  data; } 上記②が約2秒なのに③の改行単位のケアで25秒に増加しているので、 まずここの作りがおかしいんだろうなとは思いますが、 何がおかしいのかが、まだわかっていません。



82:デフォルトの名無しさん
18/07/15 16:27:56.77 Y0/Ay92k.net
>>74
ありがとうございました。

83:デフォルトの名無しさん
18/07/15 17:27:08.76 1ys/w/8R.net
fseekをつかうのなんか絶対ダメだ
fseekされることで標準関数がFILEポインタでもってるバッファも
めんどいことになってるのが容易に想像がつく
そしてさらにlseekもシステムコールも呼ばれる
標準関数の実装のされかたにもよるが
大きな性能劣化は避けられない
Dの方法でひたすら シ リ ア ル に読まないと遅くなるのは当然
そんな標準関数でやってるようなことを、
こっち側でやるならそもそも標準関数使う意味がない
普通にopen、readでこっちが渡したメモリにそのまま読みこむほうがいい
まずFILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットは
まったくない
関係ないようで関係ある話だが
キャッシュがきいてない状態ではposix_fadviceを呼んでおくと
シ リ ア ル に大きなファイルを読み込むときには、計算機の状態によっては
劇的に改善することがある

84:デフォルトの名無しさん
18/07/15 17:36:56.10 1ys/w/8R.net
ちなみにファイルはUNIXでは
ブロックデバイスだからな
そのブロックデバイスをセクタ単位で
効率的に読み込むためにはどうすればいいか
あとはもう分かるな
このスレにいるサル並の知能しかないようなヤツラ以外なら
わかるハズだからな

85:デフォルトの名無しさん
18/07/15 18:02:19.58 1ys/w/8R.net
まずストレージというハードウェアが
OSでどうやって抽象化されてるか
わかってないからな
こんな頭悪いヤツラが抽象化とかなんとかいってるワケ
きっとな前スレのソースの注釈で書いたwindowsで、キャッシュなしでReadFile呼ぶ時は
セクタの倍数単位でないと使えないという意味も分かってない
ともかくこのスレに居ついてるヤツラは頭悪い
基本的なことが分かってないからな
まずなバカはこのスレで相談することが
バカな行為であることに気付かないといけない
バカななに聞いてもムダ
的外れなコタエしか返ってこない

86:デフォルトの名無しさん
18/07/15 18:16:38.79 F1eG7opL.net
>>80
> FILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットはまったくない
メリットはあるでしょ。システムコールのreadやReadFile()と違い、
FILE*を使ったfread()はアラインメントを無視した小さいバッファサイズで読み込んでも全体としての速度低下が起きにくい恩恵がある。

87:デフォルトの名無しさん
18/07/15 19:07:48.62 lbsq5rUe.net
13Gログ解析野郎と半角野郎が毎度毎度必ずコンビで出てくるのは何なんだろうなー
おっかしいなー
「ぼくちんのログ解析ソフトをぼくちんが考えた最強の名無しが作るスレ」でやってどうぞ

88:デフォルトの名無しさん
18/07/15 20:22:05.00 1ys/w/8R.net
低学歴で知能低いのが答えられる質問の範囲なんかたかがしれてる
知恵遅れでも回答できる質問に限定される
こういうヤツラはYahoo知恵遅れがお似合い
もうね2ちゃんねるのクオリティーも著しく低下したもんだわ
著しくレベルの低い質問なら回答できるワケだからな
情報として保存される価値すらない
ゴミ質問とゴミ回答

89:デフォルトの名無しさん
18/07/15 20:27:33.82 1ys/w/8R.net
昔ならググレカスでおわるような質問を
どやがおで低学歴知恵遅れが回答するスレがココだからな
低学歴知恵遅れが活躍できる場所はココしかない
オレのナワバリを荒らすなと低学歴知恵遅れが
主張


90:している



91:デフォルトの名無しさん
18/07/15 20:39:19.46 oGr67yTf.net
あぼーん設定推奨
[ヲ-゚]

92:デフォルトの名無しさん
18/07/15 22:46:04.59 GtfCPRC1.net
POSIXの制限に起因するパフォーマンス低下を回避するためのドライバをさっき見たばかりだな。
ハイパフォーマンスの世界にはそういうのもあるんだな。

93:デフォルトの名無しさん
18/07/15 23:08:51.14 ugn7dRUi.net
>>85
解析のコード書けたの?
お前が全部作ってアップすればそれで終わる

94:デフォルトの名無しさん
18/07/16 01:21:00.28 6luw5g3K.net
とりあえずファイルすべての字句解析と
最低限のデータ取得できるとこまではできた
※ あとはデータを格納するだけ
テストデータのジェネレータを修正した
URLリンク(ideone.com)
で、とりあえず作ってみた解析のコードが↓コレ
URLリンク(ideone.com)
プリプロセッサにDEBUG_WRITEの定義を追加してやれば
データ取得できてることがダンプして確認できる
※ ダンプする場合は、ファイルにリダイレクトするにしても
※ 物凄い時間かかるし、物凄いディスク容量をとるから小さいテストデータでやるほうが
※ とりあえず無難
ものすごい単純なコードプロトタイプになってるから
バカでもチョンでも簡単に整理や作りかえができるようにはなってる
※ 処理内容はコードみたまんまのハズだ
※ 同じような処理がひたすら書かれてる
※ QQがなくなればめっちゃコード減るハズ
※ コードのほとんどはQQのムダ処理

95:デフォルトの名無しさん
18/07/16 01:37:37.27 RYaEyvne.net
うわっ
汚いコード

96:デフォルトの名無しさん
18/07/16 10:44:37.38 526Z5Rhh.net
15GBのテキスト解析8.6秒のマシンで
>>90の時間を計ったら54秒でした。
ファイルアクセスの時間は除いた純粋な解析処理です。
これがプロとアマチュアの差ですか。
まあ54秒でも使えるレベルではあると思うんで
これで良いんじゃないですかね?

97:デフォルトの名無しさん
18/07/16 11:29:13.12 80hpbb9v.net
OS のAPI を、直接呼んではいけない。
例えば、1バイト読み込みを千回やれば、千回API が呼ばれる。
ユーザーモードからカーネルモードへの、コンテキストスイッチが千回
一方、バッファリングしている、C のライブラリを使えば、
千バイト1回の読み込みで済む
ライブラリが抽象化している。
buffering stream
ユーザー → (ライブラリ) → API

98:デフォルトの名無しさん
18/07/16 11:39:40.02 774eW9FT.net
>>90
今回相談しているものです。
ありがとうございます。
まず >>78 で②が2秒、③が25秒の違いを調べました。
>>78 の③で実行するため昨日アップした URLリンク(ideone.com) に
「#define READ_MODE 1」を設定し25秒かかることを確認。
ここから後ろの処理からコメントアウトしていくと、下記行の前後で
25秒から2秒に変わりました。
88行目: data = real_data;
real_data(char型)のポインタをdata(char型のポインタ)に代入したつもりだったのですが、
もしかして実体がコピーされているのでしょうか?
>つづく

99:デフォルトの名無しさん
18/07/16 11:41:24.00 774eW9FT.net
続けて >>90 のコードを実行してみました。
データ生成の方は、>>51 の最後に説明している、
「1つのファイル内でQQ行とx, yの後ろにくるパターンの両方は存在せず、片方が出てきたらもう片方は出てきません。」
というところで、1つのファイルに両方のフォーマットが生成されていましたが、
両方が読めれていれば特に問題はないと思います。
読み込み用のコードは自分の環境では %"PRIu64" → %" PRIu64 " とスペースを開けないとなぜかエラーになりました。
あとargv[2]がよくわかりませんでしたが実行できたのでとりあえずそのままにしています。
以下結果
## 1GB
time ./a.out aaa_1gb
strat... ./a.out aaa_1gb (null)
done... ./a.out aaa_1gb (null)
4./a.out aaa_1gb 3.69s user 0.14s system 99% cpu 3.839 total
## 5GB
time ./a.out aaa_5gb
strat... ./a.out aaa_5gb (null)
done... ./a.out aaa_5gb (null)
18./a.out aaa_5gb 17.40s user 0.78s system 99% cpu 18.216 total
## 13GB
time ./a.out aaa_13gb
strat... ./a.out aaa_13gb (null)
done... ./a.out aaa_13gb (null)
47./a.out aaa_13gb 44.99s user 1.73s system 99% cpu 46.781 total
みなさんキャッシュの話をされていて、その辺がまだあまり理解できていないのですが、
文字列解析時にはキャッシュから取り出して参照するため時間は増えるということですかね。

100:デフォルトの名無しさん
18/07/16 11:50:33.56 774eW9FT.net
あと、freadだけで2秒のものに、freadの後にからなず fseek(fp, -10000, SEEK_CUR) を実行してみましたが、
処理時間は2秒で変わりはありませんでした。
これらのことから >>94 で書いている
88行目: data = real_data;
のせいで2秒から25秒に増加しているようです。

101:デフォルトの名無しさん
18/07/16 15:13:00.28 774eW9FT.net
>>90 のコードを >>95 と同じ環境で、readをfreadに変えて実行してみたところ下記になりました。
readとfreadで速度に変わりはなさそうです。
## 1GB(fread版)
./a.out aaa_1gb
strat... ./a.out aaa_1gb (null)
done... ./a.out aaa_1gb (null)
4
## 5GB(fread版)
./a.out aaa_5gb
strat... ./a.out aaa_5gb (null)
done... ./a.out aaa_5gb (null)
18
## 13GB(fread版)
./a.out aaa_13gb
strat... ./a.out aaa_13gb (null)
done... ./a.out aaa_13gb (null)
48

102:デフォルトの名無しさん
18/07/16 15:37:46.05 6luw5g3K.net
かわりがないとか
んなわけがないからな
先にいっておくが
ちなみにオレのコードより
おなじところまで解析できる処理を
速い速度で作れるヤツはまずいないからな
作れるもんなら作ってみればいいわ

103:デフォルトの名無しさん
18/07/16 15:40:29.53 6luw5g3K.net
ちなみにDEBUG_WRITEを定義に追加したら死ぬほど遅いからな
ちゃんとDEBUG_WRITEをとって計測してるのかすら怪しい
バカが書いたコードより間違いないなく速いハズだからな

104:デフォルトの名無しさん
18/07/16 15:48:01.58 80hpbb9v.net
同じデータで、2回テストしても、
1回目は、HDD からメモリへ読み込むけど、
2回目は、既にメモリ上にデータが存在するから、HDDから読み込まない。
メモリキャッシュから読むから、HDDの読み込み速度とは違う
だから、2回目のテストの前に、
メモリキャッシュをすべて破棄しておいてから、テストをしないといけない

105:デフォルトの名無しさん
18/07/16 15:49:56.51 6luw5g3K.net
コレで他のより遅いというなら
オレはもうバカの相談には二度とのらないし
コレ以上のコードは書かない
ほぼ限界まで速度が出るようにチューニングしてるハズだからな
評価のしかたが分かってない

106:デフォルトの名無しさん
18/07/16 15:51:18.48 fNWu8+xr.net
>>98
>>92

107:デフォルトの名無しさん
18/07/16 15:51:33.68 6luw5g3K.net
だからコードあげろよ

108:デフォルトの名無しさん
18/07/16 15:52:15.83 fNWu8+xr.net
ザコ

109:デフォルトの名無しさん
18/07/16 15:52:15.93 6luw5g3K.net
シロウトは口だけだからな
クソニートのシロウトが口をはさむ余地なんかない

110:デフォルトの名無しさん
18/07/16 15:53:09.83 6luw5g3K.net
ザコはオマエだろ
クソニートのザコはコードあげずに
何秒とかいってるだけだからな

111:デフォルトの名無しさん
18/07/16 15:55:20.94 fNWu8+xr.net
数値への変換、何で標準ライブラリ使うのやめたの?
速いんでしょ?
www

112:デフォルトの名無しさん
18/07/16 15:55:41.81 fNWu8+xr.net
fgetsも何で使うのやめたの?
速いんでしょ?

113:デフォルトの名無しさん
18/07/16 15:57:13.10 6luw5g3K.net
読み込み速度で問題
そしてポインタをひたすらインクリメントだけして
ひたすら最小限の参照するだけの処理より速い処理なんか
逆立ちしてもかけるワケがないからな

114:デフォルトの名無しさん
18/07/16 15:58:16.80 6luw5g3K.net
fgetsはシロウトが使っても概ね良好な結果が約束されてる

115:デフォルトの名無しさん
18/07/16 16:01:19.01 fNWu8+xr.net
>>109
だからお前はザコ

116:デフォルトの名無しさん
18/07/16 16:03:00.33 6luw5g3K.net
クソニートがいきがってるしな
オレが書いたコードを超える速度がでるコードを
まずあげてみろよ
話はそこからだからな

117:デフォルトの名無しさん
18/07/16 16:03:52.50 6luw5g3K.net
クソニートはテキトーなことばっかりいって
口だけだからな

118:デフォルトの名無しさん
18/07/16 16:03:56.64 fNWu8+xr.net
糞コードがなぜ糞か
どこで時間がかかるのか
それくらい自分で調べよう

119:デフォルトの名無しさん
18/07/16 16:04:43.29 6luw5g3K.net
だからクソニートはコードあげろよ
オレのコードにムダは一切ない

120:デフォルトの名無しさん
18/07/16 16:05:18.19 fNWu8+xr.net
8.6秒のコードも
まだまだ改善の余地があるから

121:デフォルトの名無しさん
18/07/16 16:05:51.54 6luw5g3K.net
だからクソニートは口だけ8.6秒のコードをあげろよ

122:デフォルトの名無しさん
18/07/16 16:06:30.96 fNWu8+xr.net
まあせい�


123:コい頑張ってね ザコ



124:デフォルトの名無しさん
18/07/16 16:07:20.43 6luw5g3K.net
オマエはクソニートだからな
クソニートはコードの速度の心配をするまえに
自分の心配をしたほうがいい

125:デフォルトの名無しさん
18/07/16 16:22:48.03 6luw5g3K.net
URLリンク(ideone.com)
g++ -o baka_test $file_name
echo 512,`./baka_test $input 512` > baka_result.txt
echo 1024,`./baka_test $input 1024` >> baka_result.txt

上記を13GBのファイルで試したら下記結果が出ました。
512,13
1024,7
2048,5
4096,3
8192,2
16384,2
32768,2
65536,2
131072,1
262144,3
524288,2
1048576,2
2097152,2
4194304,2
8388608,2
16777216,3
33554432,2
67108864,3
134217728,3
268435456,3
536870912,3
1073741824,3
バカが試験してシステムコール呼びだしのオーバヘッドの評価なんかすでに評価済
(システムコール呼びだしのオーバヘッドの評価なんか、バッファサイズを変更による推移をみれば簡単に評価できる)

126:デフォルトの名無しさん
18/07/16 16:28:07.89 fNWu8+xr.net
まだキャッシュに入ってる前提でテストしてるの?
アホなの?

127:デフォルトの名無しさん
18/07/16 16:30:26.25 6luw5g3K.net
また低学歴知恵遅れのクソニートがテキトーなこといってるからな
キャッシュにのってるなら
オレのエレガントなコードを除いたすべてのクソコードも同じキャッシュがのった条件で
試験されてるわ

128:デフォルトの名無しさん
18/07/16 16:31:48.69 6luw5g3K.net
低学歴知恵遅れのクソニートってテキトーなこといって
なんかいった気になる
社会参加しないクソニートが2ちゃんねるで政治の話をするのと似てる

129:デフォルトの名無しさん
18/07/16 16:31:59.31 fNWu8+xr.net
まず54秒をどうにかしろよ

130:デフォルトの名無しさん
18/07/16 16:33:40.35 fNWu8+xr.net
1秒~2秒なんてどうでもいい
キャッシュに無い時の読み込み時間
解析時間
これをどうにかしろよ
意味の無い所に時間をかける典型的なアホ

131:デフォルトの名無しさん
18/07/16 16:34:35.04 fNWu8+xr.net
木を見て森を見ず

132:デフォルトの名無しさん
18/07/16 16:44:07.58 774eW9FT.net
今 >>90 の解析コード見てますがseekを使わずreadで連続して読み込むところがとても参考になります。
こうやって読み込むんですね。

133:デフォルトの名無しさん
18/07/16 16:54:07.55 fNWu8+xr.net
いろいろとパクってるね

134:デフォルトの名無しさん
18/07/16 18:00:25.42 6luw5g3K.net
オマエはまずオレのエレガントなコードを参考するまえにな
この愚かなコードをどうにかしたほうがいい
unsigned char real_data[BUF_SIZE+1];
size = fread( &real_data, sizeof(real_data[0]), BUF_SIZE, fp);
data = real_data;
遅いどころかそもそもちゃんと動作すらするワケがない
マジでな、オマエは今までなにをやってたわけ?
小一時間問い詰めたいわ
はっきりいうわ
オマエ、才能ない

135:デフォルトの名無しさん
18/07/16 18:05:36.68 6luw5g3K.net
オレが引用したオマエのコードが
なんでお話にならないくらいダメなのか
理由が分からないならオマエはCをさわらないほうがいい
コレはいいきれる
速く動作させたいとか以前の問題だからな

136:デフォルトの名無しさん
18/07/16 18:29:34.88 fNWu8+xr.net
エレガントなコードwww
糞汚くて激遅なコード
お前は偉そうに語れるレベルじゃない

137:デフォルトの名無しさん
18/07/16 18:30:40.10 fNWu8+xr.net
ザコはザコらしくしてろ

138:デフォルトの名無しさん
18/07/16 18:34:38.20 fNWu8+xr.net
テキトーに作った1作目
前スレの>>851の24.3秒
の倍以上の時間で
もうネタ切れのザコ

139:デフォルトの名無しさん
18/07/16 18:58:39.51 6luw5g3K.net
ごちゃごちゃいってないでな
クソニートはオレより速くできるコードをあげたらどうだ
クソニートが邪魔でしょうがない

140:デフォルトの名無しさん
18/07/16 19:00:10.74 r07bWXyg.net
何の邪魔?
5chで名を上げようとでも思ってるの?w

141:デフォルトの名無しさん
18/07/16 19:02:42.71 6luw5g3K.net
どうでもいいが
クソニートは邪魔しかしないからな
オレのエレガントなコードに嫉妬してるワケ
まちがいなくオレのコードより速いコードなんかかけるワケがないからな

142:デフォルトの名無しさん
18/07/16 19:04:00.40 6luw5g3K.net
クソニートはこうやって社会と接点ももったつもりになってるワケ
分かりやすい
ニューススレなんかに湧いてくる社会参加してないクソニートとそっくりといっていい

143:デフォルトの名無しさん
18/07/16 19:05:41.08 6luw5g3K.net
ココは相談スレだからな
まちがいなく


144:クソニートは相談スレの邪魔をしてる



145:デフォルトの名無しさん
18/07/16 19:12:14.13 r07bWXyg.net
自己紹介乙

146:デフォルトの名無しさん
18/07/16 19:13:02.52 6luw5g3K.net
もうね図星つかれて
顔真っ赤だからな
ホントな分かりやすいわ
分かってしまうのが怖いわ

147:デフォルトの名無しさん
18/07/16 19:15:40.86 6luw5g3K.net
だいたい分かる
登校拒否児のまま高齢ニートになったようなのが
このスレにはウジャウジャいる
低学歴なまま精神的に大人になってないような知恵遅れの典型的なレスパターンだからな
いわゆるヒキコモリというヤツだ

148:デフォルトの名無しさん
18/07/16 19:20:00.33 r07bWXyg.net
ID真っ赤なのは唯一人

149:デフォルトの名無しさん
18/07/16 19:29:45.75 6luw5g3K.net
クソニートは相談スレに参加できるレベルに達してないからな
いままで参加できてると錯覚してたワケ
参加できないからIDが赤くなるまでレスもできない
ホンモノのプロフェッショナルなオレがくればこうなる
知恵遅れがオレスゲーできない
唯一の自分が社会と接点をもててると錯覚してる唯一の場所が
オレに乗っ取られたワケ
くやしいの?

150:デフォルトの名無しさん
18/07/16 19:32:29.15 r07bWXyg.net
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


151:デフォルトの名無しさん
18/07/16 22:04:34.63 KaFNK61g.net
最近バーチャルYouTuberは4,000人を越えています。
そこで今どのVtuberが人気なのか調べてみようと思います。
第二回バーチャルYouTuber人気投票ですが、Vtuber界隈の変化が激しい為、投票受付期間中であれば、
一度投票した内容を変更できるようにしました。
今回は一人三票です。今回からモンスト、鈴木ヒナ、ポン子、アイドル部など強力な新人さんも入っておりますので、
投票をよろしくお願いいたします。
現在830票
あなたの好きなVtuberは?
URLリンク(goo.gl)
・2018/6/5時点でチャンネル登録数10,000人以上のVtuberを対象としています。
・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。
・一人三票です。
・このグーグルフォームに投票するにはグーグルアカウントでログインする必要があります。
・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。
・今回も1,000人の方が投票するまで継続します。
・受付期間中は何度でも投票内容を変更できます。
第一回バーチャルYouTuber人気投票結果(2018年5月7日~5月30日、全投票数1,000票)(スプレッドシート)
URLリンク(docs.google.com)

152:デフォルトの名無しさん
18/07/16 22:56:02.09 6luw5g3K.net
とりあえず、バカでも使えて修正できる
パーザーのクラスのサンプルでも気が向いたら作っといてやるわ
こんなもんデータを全部格納できるワケがないからな
今の解析コードのサンプルでも位置とサイズの情報はガッチリとってるから
いくらでも改良できる
オレみたいなプロフェッショナルになると、こんなことハナから予見できてるワケ

153:デフォルトの名無しさん
18/07/16 23:55:04.74 k7Gq2lBS.net
>>94-97
「ぼくちんのログ解析ソフトを半角さんが作ってくれるスレ」を立ててそっちでやってくれないか

154:デフォルトの名無しさん
18/07/17 04:14:16.72 eLk9EV06.net
パーザーw

155:デフォルトの名無しさん
18/07/17


156:12:14:32.32 ID:laha5pLP.net



157:デフォルトの名無しさん
18/07/17 14:06:01.71 I4a/6mEU.net
>>146
今のサーバはメモリに多少余裕があるから全部メモリに格納しようと
思ってましたが、よく考えると数人同時に使ったり他の低スペックサーバを
使うことを想定すると確かに名称、テキスト、数値の番号と位置など
最低限の情報だけ拾ってその都度ファイルにアクセスした方が
他の人に迷惑がかからず良さそうです。
気が向いたらよろしくお願いします。
自分でも検討してみます。
>>147
相談しっぱなしは悪いと思い、色々調べた結果を出してしまいました、すみません。

158:デフォルトの名無しさん
18/07/17 17:51:00.62 rBemJlfB.net
悪いと思って無いだろ

159:デフォルトの名無しさん
18/07/17 18:31:14.54 0lwIt+yt.net
消えろ

160:デフォルトの名無しさん
18/07/18 18:38:21.90 zAL/THKp.net
ハイ、謝罪と賠償の要求いただきました!
みんなー、謝罪と賠償の要求出たぞー!

161:デフォルトの名無しさん
18/07/18 19:24:54.30 xHEVxC3Y.net
ごめんなさい
100円

162:さまよえる蟻人間
18/07/18 19:48:18.30 IL3iPWys.net
パーサーもパーザーも間違いではない。

163:デフォルトの名無しさん
18/07/18 19:51:38.49 xHEVxC3Y.net
はいはいwww

164:デフォルトの名無しさん
18/07/18 22:02:52.32 L914sbje.net
int a;
if( hoge ){
const a = 1;
}
else{
const a = 2;
}
とすると不安定な動きをするのですが、
このコードは許されないのでしょうか。

165:デフォルトの名無しさん
18/07/18 22:17:00.15 WhjAyW4L.net
許される

166:デフォルトの名無しさん
18/07/18 22:28:45.28 4KYHyXSz.net
const a = 1; ってなんぞ??と一瞬思ったがintが省略されてるのか
それブロック内ローカル変数だから、外のint a;には関係しないよ
>157に書かれてるところは許されるけど、
書かれてないところでint a;を使ってたらそりゃ不安定だろうね

167:デフォルトの名無しさん
18/07/20 17:29:54.53 j7YVAWUD.net
不安定な動きはしないと思うが
ルールがわかってないだけで

168:デフォルトの名無しさん
18/07/20 18:06:32.94 TP/FZeZJ.net
外側のaを初期化してないから不安定になる可能性はある。

169:デフォルトの名無しさん
18/07/20 18:38:08.70 obfOsgMS.net
aを不定なまま使えば不安定になるかも知れないが
>>157のコードだけならなにも問題ない
>>157の回答としては
「許される」が正解

170:デフォルトの名無しさん
18/07/20 21:07:42.21 0P/bZCls.net
許すのは誰なのかというところから(ry

171:デフォルトの名無しさん
18/07/20 21:08:02.97 j7YVAWUD.net
コンパイラ様

172:デフォルトの名無しさん
18/07/20 21:15:25.57 MVqkCRqy.net
int a; // 未初期化
if (hoge) {
const a = 1; // if の中だけで使える変数aを新たに宣言
const int b = 1; // こう書いてbを使うのと同じ
} else {
const a = 1; // else の中だけで使える変数aを新たに宣言
const int c = 1; // こう書いてcを使うのと同じ
}
int i = a; // 未初期化のままaを使おうとして「不安定な動きをする」

173:デフォルトの名無しさん
18/07/21 03:52:30.13 ZZ4YytrN.net
コンパイラ様は、代金を支払うお客様より偉いのか。

174:デフォルトの名無しさん
18/07/21 07:09:59.33 CT2MO4Nk.net
機械は偉さで動いてはいない

175:デフォルトの名無しさん
18/07/21 07:12:46.06 d0oYLoM2.net
そのうち褒める褒めないで動作が変わるようなAIコンパイラが出てくる

176:デフォルトの名無しさん
18/07/21 07:16:56.35 ZZ4YytrN.net
もうしわけない。金毘羅様に言及すべきだったのにそうしなかったのが情けない。

177:デフォルトの名無しさん
18/07/21 11:56:28.78 KXd0ss1Q.net
警告オプション有効にして助言をもらおう
> warning: variable 'a' is uninitialized when used here [-Wuninitialized]

178:デフォルトの名無しさん
18/07/21 12:20:29.40 RLP8Sp1U.net
C++勉強するたびに嫌いになってきて草

179:デフォルトの名無しさん
18/07/21 12:23:02.98 L4ZstKjT.net
そんなのは道楽でC++やってるあまちゃんのたわごとだ
俺なんかは最初からC++以外に用意されてなかった

180:デフォルトの名無しさん
18/07/21 12:34:14.56 Zy/M/93a.net
c++はできるだけの範囲で出来るだけのことをやればいい
意欲があればさらに進めばいい
むりして難しいことをやらなくてもいい
c関数での文字列の処理が嫌ならstring使えばいい
楽なところは楽でいい

181:デフォルトの名無しさん
18/07/21 13:42:42.85 V/L9XjgX.net
template <typename TypeA, typename TypeB> void TempSet(TypeA* Obj, void (TypeB::*Method)())
{
*Obj->*Method;
}
これがエラーでコンパイルできないんですが、
TypeBのメンバ関数呼び出すのはどうやればいいんでしょうか?
TypeAはインスタンスのオブジェクトポインタです

182:デフォルトの名無しさん
18/07/21 13:44:42.66 gIfo2zic.net
でも++が一番ストレスなく組めると思う。

183:デフォルトの名無しさん
18/07/21 13:53:05.91 0t9tN8g5.net
>>174
TypeA はTypeBの間違いで、
Obj->Method();
でないの?

184:デフォルトの名無しさん
18/07/21 14:00:56.99 0t9tN8g5.net
おっとこうか
(Obj->*Method)();

185:デフォルトの名無しさん
18/07/21 16:20:10.80 FasZjosd.net
>>177
なるほどそれですね、ありがとうございます。

186:デフォルトの名無しさん
18/07/21 18:50:32.76 yF+tsqCG.net
VMWare使ってLinux入れてみた
貧弱なPCでめちゃくちゃ重すぎるがコレで普通にコンパイルはできる
いままで黙ってたがMSのコンパイラでコンパイルしてたからな
やっとオレの芸術的なパーザをコピペで作る準備が整った

187:デフォルトの名無しさん
18/07/21 19:53:50.78 IjOYQkhe.net
やっぱワッチョイ必要だな これ

188:デフォルトの名無しさん
18/07/21 19:54:08.06 4OwLAQG2.net
コンパイルするためだけにVMWarewwwwwwwwwwwwwwwww

189:デフォルトの名無しさん
18/07/21 20:17:49.81 Y8T9UzT7.net
>>179
DELLのPC安いから買うといいよ

190:デフォルトの名無しさん
18/07/21 20:18:57.06 ZZ4YytrN.net
ubuntu on windows は、ウィルス対策ソフトのウィルス・バスターがubuntu上のプロセスを監視対象として認識しないらしく、きびきびと起動・実行できる。
それがいいことか悪いことかは、さておき。

191:デフォルトの名無しさん
18/07/21 21:04:13.24 CT2MO4Nk.net
>>181
何かおかしいか?

192:デフォルトの名無しさん
18/07/21 21:05:35.42 o4R9sYuw.net
botに反応するなよ

193:デフォルトの名無しさん
18/07/21 21:08:08.82 CT2MO4Nk.net
botがそんな反応するか
そういうことにしたいのなら
見逃してやるが

194:デフォルトの名無しさん
18/07/21 21:18:01.24 gFGCO6jl.net
見逃してもらえないとどうなっちゃうの?

195:デフォルトの名無しさん
18/07/21 21:23:00.95 CT2MO4Nk.net
何がおかしいのか聞こうか

196:デフォルトの名無しさん
18/07/21 22:50:00.50 yF+tsqCG.net
32bitのlinuxしか入らんから
それでもいちいちめんどくさいことは分かった

197:デフォルトの名無しさん
18/07/21 23:13:14.47 NpMyvs3y.net
macならdockerでlinux環境作るのもありかなと思ったが、
winだとまだdockerインストールめんどくさげだね。

198:デフォルトの名無しさん
18/07/22 12:08:37.73 LuRYHz2h.net
>>179
自分もvmwareでlinux入れてましたが、メモリ4GB(有効なのは約3GB)の初代i3ノートPCで、vmware割当メモリ700MBくらいで使ってましたが
かなり重かったけど立ち上がったらそこそこスムーズに使えてました。
メモリ8GBくらいあればvmwareに1GB~2GBくらい割り当てれば、そこそこストレスなく使えそうな気がします。
ちなみにすでに知ってるかもしれませんが、win10だとubuntu?っぽいのを直接インストールできます。
windows内にゴミがたくさんできそうだから個人的には躊躇しますが。
URLリンク(www.atmarkit.co.jp)

199:デフォルトの名無しさん
18/07/22 14:07:01.86 ST9MozRw.net
それは入れないほうがいいよ
互換性問題があるしかなり機能を絞られてる
使ってみてわかる誰得機能
容量も十数G必要
VirtualBoxを普通にいれたほうが使い勝手がいい

200:デフォルトの名無しさん
18/07/22 20:18:52.55 mbi94QjP.net
> 容量も十数G必要
いや1GBも要らんよ、どこ確認したんだw
WSL丸ごと%LocalAppData%\Packages\CanonicalGroupLimited.*.ならんちゃらに突っ込まれる形式だから
ホストOSにゴミが残るってのも杞憂
最近はDocker Engineがそれなりに動く程度には互換性も高まってきてるみたいね
エクスプローラのアドレスバーからbashで窓側をカレントディレクトリにして起動できるのが良い

201:デフォルトの名無しさん
18/07/22 20:20:13.96 Nia5Zbws.net
>>192
> 互換性問題があるしかなり機能を絞られてる
WSL(Windows Subsystem for Linux)は、C++やLinuxシステムコールを使ったGNUプログラミング環境としては必要十分だと思うけど、具体的にどんな問題あるの?

202:デフォルトの名無しさん
18/07/22 20:26:16.94 tfHLB3F/.net
>>194
サービス書くときかな。
他はWSLが楽だと思う。

203:デフォルトの名無しさん
18/07/22 20:28:26.39 tfHLB3F/.net
Linuxを使う意図はサーバーか組み込みなので、WSLで足りない場合もあると思うんだけど、ひな形があれば済む話かもしれんね。

204:デフォルトの名無しさん
18/07/22 20:31:49.81 ST9MozRw.net
サーバ系がサポートされてない
使うならVM使ったほうがいいよ
ファイルシステムもwindowsのものの上に作られてるのであれこれ問題が出る
>>193
1Gというのが笑えるw
コンパイルしないのかw

205:デフォルトの名無しさん
18/07/22 20:34:24.26 tfHLB3F/.net
>>197
VMは大げさすぎるかな。
使えるときはWSLを積極的に使っていきましょうよ。
とてもいいものですから。

206:デフォルトの名無しさん
18/07/22 20:41:37.63 tfHLB3F/.net
VMは一つのパソコンで複数のOSを動かすのでOSの数だけメモリーを食うんですよね。
その点、WSLはWindowsがLinuxのようにふるまうだけなのでWindows分のメモリーしか食いません。
そんなわけなので、お財布にやさしいんです。
それでいてサービスの開発以外では全く遜色在りませんし、そもそもサービス開発だって、大詰めを迎えるまではdaemonとして起動することはないでしょう。

207:デフォルトの名無しさん
18/07/22 20:42:00.95 ST9MozRw.net
bash使うだけならわかるけどコンパイルも含めて何か使おうとするなら
既知の問題や互換性に問題もあるものを選ぶのはクレバーだと思わない

208:デフォルトの名無しさん
18/07/22 20:44:34.92 ST9MozRw.net
WSL上のバッドノウハウをひたすら集めたいとか
縛りのある環境のほうが燃えるというなら止めはしない
ただわからない人に勧めるものじゃないなって思う
不具合があった場合それがどこ由来なのか特定できない人間には特にすすめちゃダメ

209:デフォルトの名無しさん
18/07/22 20:45:31.78 tfHLB3F/.net
>>200
ディストリビューターが開発する本物のディストリビューションですからまったく問題ありませんね。
Canonicalが開発した本物のUbuntuがWindowsで動くのです。
もちろんDebianであっても同じことです。

210:デフォルトの名無しさん
18/07/22 20:50:22.91 ST9MozRw.net
>>199
>>202
ディストリビューターが提供しようが
WSLはlinuxでもないwindowsでもない不思議な物
両方の制限の積 windows ∩ linuxでありわざわざ苦労することはないよ
windows上の疑似linuxであってかなりニッチな物
どこかおかしくても不思議じゃない

211:デフォルトの名無しさん
18/07/22 20:56:04.07 tfHLB3F/.net
WSL、CMake、VCPKGがお勧めキーワードです。
C++ユーザーにはUbuntuをお勧めします。
gcc-7を導入してC++-17をご利用ください。

212:デフォルトの名無しさん
18/07/22 20:56:30.30 sWlXYLBw.net
どこかおかしくても不思議じゃない(どこがおかしいのかは知らない)

213:デフォルトの名無しさん
18/07/22 20:57:52.61 Nia5Zbws.net
今のWSLはLinuxのdaemonもサポートしてるから問題ないと思うんだけど、具体的にどんな問題起きたの?

214:デフォルトの名無しさん
18/07/22 20:58:04.83 tfHLB3F/.net
Visual Studio 2017にはLinux DebugとLinux Releaseというターゲットがあり、標準でLinuxをサポートしていますよ。

215:デフォルトの名無しさん
18/07/22 20:58:48.25 ST9MozRw.net
c++使うような厳格さを求める人間がWSL使ってるとは思わなかった
WSLで動いたとして他の環境で動くとは保障されないのに
どこがおかしいのか推定もできない仕組みの上で何故ごみを作るんだ

216:デフォルトの名無しさん
18/07/22 21:01:33.45 tfHLB3F/.net
>>206
init機構がWSL用だから。
それを言い出すと、RedhatとUbuntuだって違うじゃないかということになるけど、Redhatに配備するものはRedhatで開発してたのが今までのスタイルなので、VMのほうが良いという人はその点を指摘してるんじゃないのかな。
それ以外にWSLを使わない理由がないので。

217:デフォルトの名無しさん
18/07/22 21:04:40.18 tfHLB3F/.net
まあ逆に言うと、WSLで動かないのであれば、Linuxディストリビューション間でも可搬性が無いよね。

218:デフォルトの名無しさん
18/07/22 21:05:04.20 Nia5Zbws.net
>>208
実機Linuxならどこがおかしいか推定できるという根拠はないでしょ。
むしろ、WSLのような抽象化された環境でさえ動かない稚拙なものを実機に持っていく気なの?と言い返すことさえできるのだけど。

219:デフォルトの名無しさん
18/07/22 21:07:21.30 ST9MozRw.net
違う違う
普通のlinuxで動くコード書いててもWSL上では動かせない場合があるのが問題だろ

220:デフォルトの名無しさん
18/07/22 21:09:42.72 tfHLB3F/.net
>>212
そういうものがあるのかどうか知らないけど、あるならなおさらWSLで開発したほうが可搬性を担保できてよいのでは。

221:デフォルトの名無しさん
18/07/22 21:10:55.12 ST9MozRw.net
>>211
根拠とかそんなんじゃない
考慮すべきことが多すぎる
自分のコードがおかしいのか
linuxのそもそもの仕組みがおかしいのか
MSのWSLがおかしいのか
ディストリビューターの提供してるイメージがおかしいのか
それぞれが組み合わさっておかしくなってるのか考慮する条件が増えすぎる

222:デフォルトの名無しさん
18/07/22 21:11:03.95 Nia5Zbws.net
>>212
問題なんてほぼないでしょ。
VM上で動いて喜べるレベルならWSLでも同じだから。
あなた、WSLで動作確認したことあるの?もしや憶測で書いてない?

223:デフォルトの名無しさん
18/07/22 21:11:34.45 tfHLB3F/.net
clはかなり寛容なコンパイラなので、gccでコンパイルできるかチェックしとくとより良いコードが書けますよ。
そんな用途でもWSLは素晴らしいと思います。

224:デフォルトの名無しさん
18/07/22 21:13:06.02 tfHLB3F/.net
>>214
それたぶん、自分のコードが悪いと思いますよ。
Linuxは十分安定してるので、Linuxの問題を真っ先に疑うのは、自信ありすぎだろって感じます。

225:デフォルトの名無しさん
18/07/22 21:14:34.32 ST9MozRw.net
>>215
最初のころはめちゃくちゃだったのでもう入れてない
ハードリンクの仕組みもおかしいし
タイムスタンプもおかしいし
TCPなど制限も山盛りあった
すでにあるコードも何故か動かないことが多かった

226:デフォルトの名無しさん
18/07/22 21:16:43.51 tfHLB3F/.net
開発環境はWSLがいいんじゃないですかね。

227:デフォルトの名無しさん
18/07/22 21:19:27.33 Nia5Zbws.net
>>214
抽象化されていると問題特定が容易と考えるのが一般的だと思っていたのだけど、
抽象化された環境は問題特定が難しくなるという考え方は画期的ですね。

228:デフォルトの名無しさん
18/07/22 21:21:02.02 ST9MozRw.net
linuxが安定ってジョークか
linuxカーネルは常にバグがボコボコ出てるよ

229:デフォルトの名無しさん
18/07/22 21:22:41.34 tfHLB3F/.net
クロスプラットフォームを標榜するなら、開発環境としてWindowsを選択するとよいです。
Visual StudioはWindowsとMacで使えます。
WSLによってVisual StudioからLinuxバイナリを構築できます。
MSBuildとCMakeは悩みどころですが、MSBuildはサポートが手厚く、CMakeはVisual Studioが無くても構築できます。
そこらへんで選択するとよいのではないでしょうか。

230:デフォルトの名無しさん
18/07/22 21:28:34.40 tfHLB3F/.net
まあ僕はVisual Studio、WSL、VCPKG、CMakeプロジェクトを使っているので、わかることはお答えしますよ。

231:デフォルトの名無しさん
18/07/22 21:56:04.01 Nia5Zbws.net
悪いことは言わないので、LinuxプログラムはWSLで動くことを優先して書くことをお勧めする。
他人のために時間を使いたくないのは誰でも同じ。おのずと楽に評価できる環境に流れるのは止められない。

232:デフォルトの名無しさん
18/07/22 22:35:05.45 Nia5Zbws.net
イスラームの救貧制度がかえって免罪符の役割を果たしてないか。
イスラームの救貧制度があることで、かえって商業上の強欲が横行していないか。

233:デフォルトの名無しさん
18/07/22 22:37:37.06 Nia5Zbws.net
誤爆したけど、謝罪はしない。
イスラム教は野蛮な宗教である ★4
スレリンク(whis板)

234:デフォルトの名無しさん
18/07/22 23:57:15.36 g7OD+nvH.net
だいたいでけてきたわ
コード修正をすることによって効果を簡単に計測できるように修正してる
こっちのが結構大変だったわ

235:デフォルトの名無しさん
18/07/23 01:50:38.00 SStA1pnM.net
というわけでうpした
長い戦いだった
URLリンク(fast-uploader.com)
baka_source.zip
build.shを実行すると、3つの実行モジュールができる
3つとも少し修正した(解析処理はファイルがものすごい増えたから大きく修正したように見えるハズ)
 ・テストデータジェネレータ(データの出力個数の出方を少し修正した)
 ・ストレージ能力計測プログラム(I/OのアドバイスをOSに与えるように修正)
 ・解析処理(1. 解析の処理方法自体は一切かわってないがコードの構成をバカでも分かるように変更 2. I/OのアドバイスをOSに与えるように修正)

236:デフォルトの名無しさん
18/07/23 01:56:28.48 SStA1pnM.net
で、パーザーは基本に則った作りになってる
クラスに分ける意味があるかどうかはおいといて
一般的な再帰下降パーザーになってる
BNFを構文解析する要領と同じといっていい
バカでもチョンでも分かるハズ
baka_parser_all
┣baka_parser_title
┗baka_parser_sections
 ┣baka_sub_parser_section
 ┣baka_parser_section_stat
 ┣baka_parser_text
 ┗baka_parser_elem
  ┣baka_sub_parser_xy
  ┃┗baka_sub_parser_qq_value
  ┣baka_parser_numbers_x
  ┃┣baka_sub_parser_qq
  ┃┃┗baka_sub_parser_qq_value
  ┃┣baka_sub_parser_rr
  ┃┗baka_sub_parser_number_x
  ┗baka_parser_numbers_x
   ┣baka_sub_parser_qq
   ┃┗baka_sub_parser_qq_value
   ┣baka_sub_parser_rr
   ┗baka_sub_parser_number_y
詳細な解析処理をする前に
簡易な解析処理をしたい場合(ブロックの位置情報やサイズ情報なんかだけを先に取りたい場合)、
そのクラスにそのレベルの処理を突っ込んどけばいい
解析処理の詳細さの粒度はそこでテキトーにきめればいいと思う

237:デフォルトの名無しさん
18/07/23 02:11:50.60 SStA1pnM.net
一応、parserとsub_parserの違いだけ捕捉しておく
結論からいえばデータの形式がくさってるからそういうのを入れた
parserクラスは最初に一行読んで、必ず次の行頭(LFの次)でポインタが停止するようになってる
sub_parserクラスは行は読まずに、与えられたポインタから行の途中でポインタが停止するようになってる
※ 例外はあるがsub_parserクラスは大体 LF の上(行末)で停止する
※ 停止しない例外は、sub_parserクラスが連続してる箇所が間違いなく該当することになる

238:デフォルトの名無しさん
18/07/23 20:33:09.90 SStA1pnM.net
コードの記述に一箇所誤りがあった
動作に影響は一切ないが記述ルールに問題があるから
修正しといたほうがいい
削除
 baka_sub_parser_section.h
  (L34) ++c_buf_p_; // skip LF
追加
 baka_parser_sections.h
  (L48)++c_buf_p_; // skip LF
ひたすら元のコードをコピペして貼り付けてたから
気付かなかったわ
このスレで相談してたバカはちゃんと動作確認してんのか

239:デフォルトの名無しさん
18/07/23 20:39:12.44 SStA1pnM.net
ちなみにオレのpcのosはvistaだからな
まずwslなんか動くワケがない
あと、オレのpcは32bitの計算機だから
32bitのlinuxしか動かない
pcが32bitだからな
512MBのメモリでvmware動かして
slackwareのlinuxで動作確認をした
ちなみに64bitのwindowsは一切考慮してない
考慮不要だからな
32bitのlinuxと32bitのwindowsで動作確認はできてる
つまり64bitのlinuxでは動作確認はしてないが
一応、64bitのlinuxにも対応できてる想定になってる
きっと動く
※ baka_common.hぐらいの考慮で十分なハズ

240:デフォルトの名無しさん
18/07/23 20:41:46.46 i+VNk600.net
しょぼ

241:デフォルトの名無しさん
18/07/23 20:47:36.06 i+VNk600.net
実行速度は?

242:デフォルトの名無しさん
18/07/23 20:53:16.24 SStA1pnM.net
ほとんどストレージの読み込み時間
パーズはばっちり
これ以上ないデキだ
解析する量を減らせばもっと速くなる
動かせば分かる
印字されるスループットを
どうすれば最大化できるか考えるのはこのスレのバカだ
道具はほぼすべて揃ってる

243:デフォルトの名無しさん
18/07/23 21:36:54.74 rtZ7opge.net
>>231
ブーメラン投げてんじゃねえよバカ

244:デフォルトの名無しさん
18/07/23 21:41:33.21 2Wpd7Nw8.net
パーズ

245:デフォルトの名無しさん
18/07/23 21:56:50.52 owbFvtjn.net
>>228
I/Oのアドバイスとか何言ってるのか分からない。日本語でOk

246:デフォルトの名無しさん
18/07/23 22:01:24.41 JOGfItcj.net
>>228
ありがとうございます。
なぜか下記修正をしないとコンパイルエラーで怒られました。
gcc-8.1を使っているけどそのせい?
baka_common.h
 PRIu64を有効にするため27行目に行追加:#include <cinttypes>
baka_spec.cpp
 107, 111, 125行目を修正:%d → %zd
build.sh
 clock_gettimeを有効にするためコンパイルオプションに-lrtを追加
少しコードを見ましたが、クラスのオブジェクト生成時に&があるのが
何を意味しているのかよくわかってなかったり、classのpublic内に関数名だけでなく
関数の中身も直接そのまま記述できるのを初めて知ったりと
色々新しい所があるのでじっくり見て勉強したいと思います。
つづけて実行結果を書きます。↓

247:デフォルトの名無しさん
18/07/23 22:02:12.57 i+VNk600.net
他でやれって何度も言われてなかった?

248:デフォルトの名無しさん
18/07/23 22:03:34.73 JOGfItcj.net
取り急ぎ新しいgenツールで13GBを作り、読み込んでみました。
>>231 の修正ままだしてませんが大丈夫ですかね?
## spec(ハード性能チェック?)
LINUX% ../baka_spec ./aaa_13GB
Mon Jul 23 18:14:22 2018 : starting... 14107393277 bytes read (read block size = 131072 bytes) ./aaa_13GB

Mon Jul 23 18:14:24 2018 : done... 14107393277 bytes read (read block size = 131072 bytes) ./aaa_13GB
read_block_size ::= 131072 bytes, file_size ::= 13453.86 MiB, turnaround_time ::= 2.27 sec, throughput ::= 5920.39 MiB/sec
※複数回


249:実行でだいたい5500~6000 MiB/sec ## parser LINUX% ../baka_par ./aaa_13GB "./aaa_13GB" : size = 14107393277 bytes Mon Jul 23 18:15:19 2018 : starting... ../baka_par ./aaa_13GB Mon Jul 23 18:15:19 2018 : section_count = 1, offset = 144275554 bytes, size = 144275513 bytes, turnaround_time = 0.21 sec, throughput = 646.15 MiB/sec ~ Mon Jul 23 18:15:39 2018 : section_count = 79, offset = 14107393277 bytes, size = 176862384 bytes, turnaround_time = 0.25 sec, throughput = 662.80 MiB/sec Mon Jul 23 18:15:39 2018 : done... ../baka_par ./aaa_13GB turnaround time : 20(secs) ついでに前回のコードでも試しました。↓つづく



250:デフォルトの名無しさん
18/07/23 22:04:55.29 JOGfItcj.net
## ついでに URLリンク(ideone.com) で同じファイルを読み込んだ時間
LINUX% time ./a.cpp aaa_13GB
strat... ./a.out /mnt/home2/pjupm/dbl/work/kinoshit/rve/cpp/final2/baka_source_kino/temp/aaa_13GB (null)
done... ./a.out /mnt/home2/pjupm/dbl/work/kinoshit/rve/cpp/final2/baka_source_kino/temp/aaa_13GB (null)
real 0m16.243s
user 0m14.024s
sys 0m2.199s
↑の実行時間約16秒と >>241 の約20秒の約4秒の差分はざっくり言うと
文字や数値をt_all_db構造体に格納するのに要した時間ということでしょうか?

251:デフォルトの名無しさん
18/07/23 22:09:26.85 i+VNk600.net
読み込み2秒
全部で16秒
ほとんどが読み込み時間?
嘘つき

252:デフォルトの名無しさん
18/07/23 22:18:11.65 SW13TXDW.net
>>243
これは >>242 のことですか?
それぞれは下記のようですが、sys=読み込みのみの時間 となるんですかね。
real プログラムの呼び出しから終了までにかかった実時間(秒)
user プログラム自体の処理時間(秒)(ユーザCPU時間)
sys プログラムを処理するために、OSが処理をした時間(秒)(システム時間)

253:デフォルトの名無しさん
18/07/23 22:23:23.05 hE7BXV+L.net
続きは半角とLINEでも交換してやれよ

254:デフォルトの名無しさん
18/07/23 23:09:13.26 SStA1pnM.net
オレのとこでは
baka_parもbaka_specも
どっちも30~32MiB/secだから同じだ
つまりほとんど読み込み時間
どっちも8分ぐらいかかる
で、そっちのは
 baka_spec
  turnaround_time ::= 2.27 sec ← 2秒で読み込めてる!
 baka_par
  turnaround time : 20(secs)
そっちでは明らかに解析処理が足をひっぱってる
つまり初回の解析処理をさぼればもっと速くなるハズ

255:デフォルトの名無しさん
18/07/23 23:24:47.71 SStA1pnM.net
URLリンク(man7.org)
posix_fadviseを追加したからな
シーケンシャルリードであると
ちゃんと日本語になってるわ

256:デフォルトの名無しさん
18/07/24 00:12:21.91 dbjTOx+1.net
>>246
par, specともにほぼ同じですか。
すみません。話についていけてないです。。
初回の解析処理をサボるとはどういうことですか?
自分が書いたら40~50secだったので20secですでにかなり速いと思ってるんですが、まだ高速化の余地があるんですね。

257:デフォルトの名無しさん
18/07/24 01:27:55.10 2rkV2Cvq.net
普通に考えたらこんなもん全部メモリに格納しようというほうが
普通に考えて狂ってると個人的には思うからな、それ専用の計算機ならともかく
ちなみに全部メモリに格納しようとすれば、その格納のオーバーヘッドで
さらに時間がかかることになることは予見できてる
すべてメモリにのせるDBの発想に近いが、そういうDBMSでも起動時のロードにはものすごい時間がかかる
かりにな全部データをメモリに格納しないなら
全部解析する必要はない
過去にセクションは100個ないぐらいといってたと記憶してる
仮定の話になるが、例えば1セクション読みこむのにどれぐらい時間がかかるかということになる
いまぐらいの速度がでるなら
セクションの位置とサイズだけを先に取得して
後で必要な部分のデータを再度読みこんでオンデマンドで解析しても
十分な速度がでるような気がしないでもない
(最初にどこまで解析して取得するかはとりあえず今はおいといて)

258:デフォルトの名無しさん
18/07/24 01:32:16.00 2rkV2Cvq.net
で、やりたいことは、これまでのレスを読むかぎりでは
でっかいファイルの内容を画面に表示するだけだと思う
それだけのことなら実機の高い処理能力を考慮すれば
トップダウン方式で必要な箇所をオンデマンドでロードして取得する方法で十分な気がする
そのほうが計算機にも優しいし、15Gのデータを全部眺めるバカなんかまずいないだろうしな
こんな感じのことをやるのかなあとは思ってる
Ex.
 データ取得の要求が3段階でされると仮定してる
  ①セクションの列
  ②XY with QQ、RRの列(入力:セクションのSEQ)
  ③数値の列(入力:XYのSEQ)
 A) 画面の初期表示では①で十分
 B) セクションを展開して表示するときは②の取得で十分
 C) X、Yを展開して表示するときは③の取得で十分

259:デフォルトの名無しさん
18/07/24 06:39:30.18 0yPjFIBM.net
>>246
解析処理が足を引っ張ってるのは
お前の解析処理が遅いから
>>248
まともに作れば解析自体は8秒で終わる

260:デフォルトの名無しさん
18/07/25 00:09:01.02 rOCCX8po.net
>>249,250
>すべてメモリにのせるDBの発想に近いが、そういうDBMSでも起動時のロードにはものすごい時間がかかる
まさにこの発想で考えていました。
すべて構造体に格納しようかと…
>  ①セクションの列
>  ②XY with QQ、RRの列(入力:セクションのSEQ)
>  ③数値の列(入力:XYのSEQ)
> A) 画面の初期表示では①で十分
> B) セクションを展開して表示するときは②の取得で十分
> C) X、Yを展開して表示するときは③の取得で十分
アドバイスありがとうございます。
1stステップ →上記①のセクション名、次行にあるx/yの個数、その次のテキスト行を取得しGUI表示
2ndステップ →GUIから セクション内の数値全部 or x/yの任意の番号 のどちらかを選択し表示(上記②③をその都度fseekでピンポイントに取得)
の2段階で検討してみます。
支配的なのは③の部分なので、そこを分離すれば負荷はかなり減るのではと思います。
>>251
8秒ですか。。
そのようなハイレベルな解析は日曜大工レベルの自分には当分作れそうにないです…

261:デフォルトの名無しさん
18/07/25 01:22:39.02 FQQJXzBx.net
>>252
何をする気か知らんし、読み返す気もないが、
> 日曜大工レベル
なら他言語使えよ。今のC++は君向けではない。
一通りも出来ないのだから、普通はPerl/Ruby/Pythonのどれかだと思うが。
あとここは「ぼくのさいきょうのそふとうぇあ」のスレではないから、
実際埋め立て状態だし、全く終わる気配もないし、
別スレ立ててやるのがマナーだと思うぞ。

262:デフォルトの名無しさん
18/07/25 05:58:28.01 5wxx8yDL.net
A.exeがB.exeを立ち上げる
A.exeがB.exeの起動時に共有メモリ先を渡すのに
その空間を指定するのはどうすれば良いんでしょうか

263:デフォルトの名無しさん
18/07/25 06:13:44.62 aR1SGvNs.net
共有メモリの名前を渡す

264:デフォルトの名無しさん
18/07/25 07:25:34.67 5wxx8yDL.net
winAPIのmemorymapedfileを調べてみたけど
winAPI便利だが触ったことないと敬遠しちゃう

265:デフォルトの名無しさん
18/07/25 13:33:42.64 CBV5hJrX.net
>>253
日曜大工とか書いてるけど、サーバー使ってやるとか言ってたから実務だと思うが
あまり初心者を弾くようなことを言うな
>>252
速度は実用レベルになりゃそれでとりあえずいいんじゃないの
ドヤりたいやつや喧嘩したいやつに惑わされるな
回答は参考にとどめて、自分でやってみてどうしてもわからないところだけ聞きに来い
スレを私物化するな

266:デフォルトの名無しさん
18/07/25 17:57:43.34 EWaeEahr.net
>>254
プロセス間共有メモリはプラットホーム依存でありC++の範疇ではないので、続きは以下スレでどうぞ。
>>256
あなたも。

Win32API質問箱 Build124
スレリンク(tech板)

267:デフォルトの名無しさん
18/07/25 19:13:03.63 v8CmSWWw.net
>>257
この程度のことを延々と続けられては、迷惑行為でしかないだろ。
実務なら上司に聞け、でしかないし。
最近アホが大量流入して、このスレは一気にレベルが落ちたよな。
お前らがそれについてどう思っているのかは知らんが。
お前は「プログラミング初心者」をここで飼いたいのか?
「C++初心者」はいいとして、C++は「プログラミング初心者」向けの言語ではない。
そもそも組み方も根本的に間違っている気がするが、
俺はこんな奴に教えてやる気はないし、
他の誰も指摘しないところを見ると、まあそういうことなんだろ。
(俺はソースは見てないが)

268:デフォルトの名無しさん
18/07/25 19:15:56.59 h5CHP+XR.net
確か上級者スレってあったはず
上級者はそちらに移動し、ここを見ないで

269:デフォルトの名無しさん
18/07/25 19:32:17.67 Iaq9Mrpc.net
空気読めないド初心者と、ド初心者相手にマウント取ってイキってる半角雑魚オヤジが二人で傷を舐め合ってるだけ
その二匹をNGすれば平常運転よ

270:デフォルトの名無しさん
18/07/25 19:38:59.40 v8CmSWWw.net
>>260
乗っ取るのではなく、お前が移動しろよ馬鹿タレ
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
スレリンク(tech板)

271:デフォルトの名無しさん
18/07/25 20:01:29.95 CBV5hJrX.net
>>259
いやそもそもは速度が必要なのでC++選んだ(C++については素人なので、何故自分のコードが遅いかわからない)、という話
最初の質問は何もおかしくなかったよ
前スレはもう読めないかもしれんが。
もういい加減自分で進められるだろうからいちいち報告しないでほしいが

272:デフォルトの名無しさん
18/07/25 20:20:05.41 v8CmSWWw.net
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
いつまでこの糞テンプレ張り続けるんだおい
---- テンプレ ここまで ----
>>263
なんだかんだでこのテンプレが馬鹿よけとして素晴らしく機能してたって事だよ。
それを嫌う奴が無理に剥がそうとした結果、このザマだ。
このテンプレはこのスレを極めて的確に表現しているし、C++のノリはこれだよ。
しかし、スレ検索するとC++スレって40もあるのな。正直びびったわ。
適切なスレを探すことも出来ない馬鹿にはC++なんて無理だってことでしかないが。

273:デフォルトの名無しさん
18/07/25 20:38:35.94 v8CmSWWw.net
>>263
これか?
(専ブラでは読めないが、今はdat落ちしないので、通常ブラウザなら過去スレは基本読める)
> 743デフォルトの名無しさん (アウアウウー Sa0b-sule)2018/07/07(土) 23:53:17.73ID:HbEbhDY0a
> LINUXで15GBくらいのテキストファイルを読み込�


274:ンこんでGUIを作ろうとしています。 > ファイルが大きいため速度が出せる言語で、かつGUI作成は情報量が多いと調べやすいので、まあまあメジャーな無料のGUIライブラリを使用したいと思っています。 > > perl>>python>>>>C++ の順で経験があり、C++はあまり詳しくないですが、速度重視でC++で行こうと検討しています。 > GUIライブラリを調べているのですが、C++のGUIはあまり情報を見つけられず、めぼしいのはQtくらいしか目に付きませんでした。 > 会社のサーバのローカルディレクトリにQtをインストールしてみましたが、必要なライブラリが古かったりで、インストールできませんでした。 > > 他に何かおすすめなGUIライブラリはありますでしょうか? > https://mevius.5ch.net/test/read.cgi/tech/1528382412/ ならC++選んでいる時点で間違いだろ。 理由は教えてやらないが、当然そうだからこそ、適切なライブラリがない。 というか、本当に初心者でないのなら、 適切なライブラリがない=みんなやってない=地雷臭を感じとれっての。 C++で書けば何でも速くなると思っている馬鹿、最近増えたよな。何故かは知らんが。



275:デフォルトの名無しさん
18/07/25 20:52:15.60 MsjPsnRN.net
くだらない選民思想はやめた方がいいよ、C++をベターCとしてしか使えない人でも
素晴らしいソフトを書き上げてる人は腐るほど居る
大体選民思想に走るやつってC++を実用してないやつなんだよなぁ・・・

276:デフォルトの名無しさん
18/07/25 20:54:27.06 MsjPsnRN.net
>>265
読めるなら読んでから言えよ
>適切なライブラリがない。
>みんなやってない=地雷臭を感じとれ
俺ゲーム屋なんだけど、居た会社はどこもみんな自社でライブラリというかフレームワーク作ってる
全部地雷なのか?
お前アマチュアだろ?

277:デフォルトの名無しさん
18/07/25 20:55:36.48 VnR4R5Pj.net
>>253,257
ご意見ありがとうございます。
自分にはもったいないくらいの洗練されたコードまで出して頂いてとても感謝しています。
アドバイスの通り、頂いたコードを元に自分で調べて見ます。
また色々やってわからないことろがありましたらご相談させてください。
あと、このスレはこれからも拝見させていただきたいと思います。

278:デフォルトの名無しさん
18/07/25 21:34:44.04 EWaeEahr.net
共有ポインタがC++に正式採用されたことで、JavaなどGC機能を持った他言語の優位性が薄れたわな。
コンパイル速度も上がったし、開発機のメモリも増えたしで、昔よりC++を使うストレスが軽くなった。
なので皆、C++に回帰してくる。

279:デフォルトの名無しさん
18/07/25 21:47:04.47 WkyhwwwQ.net
>>265
うわっ
なんだこの初心者丸出し野郎
>>266
> C++をベターCとしてしか使えない人でも
使えない
じゃなくて
いろいろと判断してそういうコードに意図的にするんだよ
そう判断する理由の例としては
互換性
パフォーマンス
コードサイズ
開発工数 / 評価工数
等々

280:デフォルトの名無しさん
18/07/25 21:52:55.17 99/tYlRK.net
>>267
話の内容から読む価値が全くないと分かるから読まないんだよ。
つか、初期はみんなまともな指摘してるじゃねえかよ。
ガン無視して今の有様のようだが。
> お前アマチュアだろ?
お前も無駄マウントするのではなくて、実力は投稿で示せよ。
そもそもC++用ゲームエンジンはありまくりだろ。
C++はその用途に向いているからみんな使ってる。だからそういう現実がある。
俺はそういうことを言ってるんだよ。
(日本の会社は何故かプロプライエタリに拘っているのも事実だが)

281:デフォルトの名無しさん
18/07/25 22:11:44.07 MsjPsnRN.net
>>271
>お前も無駄マウントするのではなくて、実力は投稿で示せよ。
俺は半角のコードでいんじゃね?と思ったんで何も言わんかったw
>C++はその用途に向いているからみんな使ってる
あーそういうことか
でも構文解析をC++でやるのは決して間違いではないと思うけどな

282:デフォルトの名無しさん
18/07/25 22:18:29.68 WkyhwwwQ.net



283:P純な構文解析を大量に行う なんて処理はCやC++がぴったりと思う



284:デフォルトの名無しさん
18/07/25 22:25:44.36 exbGUQmA.net
まあ新しい機能がバンバン入る言語やライブラリってのは選民思想が湧きやすいもんよ。
昔からこの業界のそういうところは変わらん。
そしてそういうものがレガシーコードを量産するという現実も変わらん。

285:デフォルトの名無しさん
18/07/25 23:04:43.31 99/tYlRK.net
>>272
> でも構文解析をC++でやるのは決して間違いではないと思うけどな
大昔:yacc/lex
昔:bison/flex
最近さらに何か出てたと思ったが、使う気がないので忘れた。
そもそも元が15GBあって、それを全部目で見るわけないだろ。
単純には grep -i error とか、複雑ならいちいちperl等で切り出して眺めるもの。
やってることが最初から見当違いなんだよ。
仮に15GBのテキストを開けるテキストエディタを作ったとして、
スクロールバー長が1500pxあったとしても10MB単位でしかなく、
ドラッグアンドドロップでのスクロール操作は使い物にならない。
当然、マウスホイールで数行単位、クリックで1画面単位でスクロールしても埒が明かない。
結果的に行数じか打ちのジャンプしかないんだから、sedでいい。
俺が教えてやらねえ、って言ったのはこの件ではないけど、
「誰もそういうことをやらないからそういうもの(ライブラリ等)がない」ってのはあるから、
初心者なりにちゃんと考えろって事だよ。
上記は初心者でも理解できるだろ。気が付かないのは考えてないだけ。
そんな奴は勝手に死んでよし。

286:デフォルトの名無しさん
18/07/25 23:18:30.44 MsjPsnRN.net
>単純には grep -i error とか、複雑ならいちいちperl等で切り出して
確かそれはやりたくないって言ってたと思う
まぁ、俺もテキストのまま扱うのはどうかとは思ったけども
別に内容書き換えるわけじゃないんだしトータルでもメモリ上に残す情報は
大した量にはならないだろうから全部読めばいいじゃん、テキストは内容を理解したそばから捨てていいんだから
(用途が俺もわかってないからどっちがいいか不明だけど、初めて使うウインドウを開いたときに
ファイルアクセスと構文解析のラグを許容できるか、それとも立ち上げ時のラグを許容できるかどうか)
ってまぁ、さんざん既出なんでこのネタはもうやめようw

287:デフォルトの名無しさん
18/07/25 23:21:30.63 n4Pkvb3R.net
オレのコードのエレガントさが分かるようならまだ芽はある
オレのコードのエレガントさが分かるなら、もう一人でコードが書ける
これからも頑張り精進したまえ
低学歴知恵遅れニートのいうことなんかほっとけばいい
>>275 ← こういう低学歴知恵遅れを見れば分かるとおり
相談してる相手がまずなにがやりたいのか全く理解できてない
まず知能に著しい欠陥があるからまずなにごとであれ
要件というもんが理解できないのは間違いない
オマエも人に仕事をたのむだけの立場になったらな
>>275 ← こういうバカには仕事を頼んではダメだ
ということもこのスレで学べたハズだ
コレもこのスレで得た貴重な体験だ
コミュニケーション能力がゼロのニートみたいなヤツだからな
こういうヤツは
間違いなくこっちがお願いしたもんとまったく違うもんあげてくる
つまりこんなヤツには最初から仕事頼んだり関わらないのが吉
こっちの余計な手間と時間だけがかかるからな
このスレは、色々学ぶことができる
これからもちゃんとこのスレ読んで精進しなさい

288:デフォルトの名無しさん
18/07/25 23:28:31.94 EWaeEahr.net
sqliteはメモリ上にデータベースを構築できる。
どうせやるならsqliteに勝てるような車輪の再発明を期待したい。

289:デフォルトの名無しさん
18/07/25 23:31:38.85 EWaeEahr.net
ramdiskで良くね?と�


290:「うのもある。



291:デフォルトの名無しさん
18/07/26 00:14:32.88 yqOLTJbQ.net
>>276
ってかまじな話、正解だと思えるレスも散見されてるぞ。
無視してるんだからどうしようもないが。何がやりたいんだこの馬鹿は?
なお、俺的に正解と思えるのは、以下。(見落としあるかも)
----
773デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/08(日) 23:16:50.92ID:w/p0hjmq0
テキストのパースなんてそれこそperlやpythonにやらせろよ
そんなところが速度にクリティカルに効いててゴリゴリ高速化しなきゃいけないのは作りがおかしい
866デフォルトの名無しさん (ワッチョイ 5fb3-C8Iw)2018/07/09(月) 22:41:30.68ID:Xc+Rjkat0
最低限のパースを実施して各レコードのオフセットを配列に入れて必要になった時に解析して表示すればいいだけかと
873デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/10(火) 01:34:56.63ID:C7bP6ErJ0
なんかのログなんだろうけど、ログ吐く時に読み込みやすいように出し方考え直した方がいいよ
大本が変えられないならパイプ繋いでフィルタ噛まして、読みやすいように直したファイルを並行して吐くとかさ
というかまず単にSECTION_NAMEごとにファイルぶった切っておくだけで良かったりしない?難しく考えすぎてない?
874デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/10(火) 01:46:08.72ID:C7bP6ErJ0
どういうGUIが必要なのかわからんから的外れかもしれないけど
ワイならSECTION_NAMEごとに集計したHTMLファイルかなんかを出力するプログラムをワンパスかけてから
後でそのHTMLをブラウザで見ることを考えたくなるんだけどそれじゃダメなの?
880デフォルトの名無しさん (ワッチョイ 4750-SFkP)2018/07/10(火) 07:31:15.21ID:wSs+8Os00
初めて開くファイルは使いやすいように変換して(キャッシュとして)保存しておいて
次回以降それを使うか
全ファイルバッチ処理で事前に変換しておくか
かな
ファイルを開く度に分オーダーかかるのは使いづらい
どちらが良いかは使い方次第で

292:デフォルトの名無しさん
18/07/26 00:15:01.25 yqOLTJbQ.net
まあ、俺ならperlで15000のファイルにあらかじめパースしてぶった切って、lessで見るね。
テンポラリファイルの有効/無効はタイムスタンプをチェックすればいいだけだし。
初心者は(選択肢を思いつけないから)無駄に難しい選択をしてはまることはよくあるけど、
正解をガン無視しているんだから死ねでしかないね。
これではお前ら的にもどうしようもないわな。
嘘を嘘と(ry は当然だが、
正解を正解と(ry だな今回は。

293:デフォルトの名無しさん
18/07/26 00:27:42.26 /19Lz3R7.net
やっぱりなコレが低学歴底辺の限界
わかるわ
所詮、低学歴底辺のドカタ
低学歴底辺のドカタは自分でログ見るらしいからな
すぐに分かるのが恐ろしい
このスレにはそんなのしかいないわ

294:デフォルトの名無しさん
18/07/26 00:30:53.03 /19Lz3R7.net
クソニートの趣味のぱちょんこん講座の邪魔されて
クソニートどもがイライラしてるのはわかるわ
クソニートのツールなんかクソニートしか使わないからな
クソニートらしい発想といっていい
まず自分がどうするありきだからな
自分以外の人間なんか関係ない
クソニート臭がプンプンする
やっぱりなニオイは隠せないわ

295:デフォルトの名無しさん
18/07/26 05:31:33.95 rsKHES0B.net
自己紹介乙

296:デフォルトの名無しさん
18/07/26 07:10:18.33 QCphLLid.net
前スレからID追うと、このスレ立てたの15Gテキストの質問者で
ワッチョイとテンプレを失敗してる
いっそワッチョイ付きで立て直して、ここは放棄するのもありじゃないかな…

297:デフォルトの名無しさん
18/07/26 08:02:19.67 wiCSHgxo.net
失敗してるワケねーんだよなぁ
ワザとだろ
俺TUEEするためだけに立てられたクソスレだよw

298:デフォルトの名無しさん
18/07/26 08:03:29.18 wiCSHgxo.net
やってることがTUEEとDANZAI、アホなSS未満のクズだろ
だからワッチョイは無いw

299:デフォルトの名無しさん
18/07/26 15:23:01.83 MiqKt3xH.net
世の中のパーサーは入力としてストリームを想定する場合が多い。
一方、OSはストリームを想定しなくなってきている。
IOCP、epoll、kqueue等を想定するプログラムにとって、必要なものは、一文字入力すると状態が変わるようなプッシュ型パーサーではないだろうか。

300:デフォルトの名無しさん
18/07/26 22:05:05.87 SqpdcEmq.net
文字列変換を質問したい

301:デフォルトの名無しさん
18/07/26 22:11:39.16 SqpdcEmq.net
途中で送ってしまった...
キャラポインタをビーストリングに変換したいです
マ ルチバイトトゥーワイドキャラでよい?
今やってるのだけど一切できなくて辛い
環境はウィンドウズです
エヌジーワードのためカタカナ混ぜてます

302:デフォルトの名無しさん
18/07/26 22:43:19.63 vMAtbXfy.net
>>290
C++的な回答をするなら、BSTRをラップしたCComBSTRクラスを使ったほうが楽だしドキュメントも多くていいと思うよ。

303:デフォルトの名無しさん
18/07/26 22:54:29.47 ekCvPRG2.net
>>291
そんなのがあるんですね
コム使うのは良いのかわからんな...

304:デフォルトの名無しさん
18/07/26 23:22:38.59 vMAtbXfy.net
>>292
すでに知らないうちにCOMを使っているはずなので、今更COMを使ってよいか気にしなくていいよ。

305:デフォルトの名無しさん
18/07/26 23:23:33.36 JU6NqyqF.net
>>285
俺は賛成。STLのテンプレもありでよろしく。
(まあ俺が賛成しても大局に影響はないが…)

306:
18/07/26 23:29:25.64 vjtcTWe7.net
>>294
別にテンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない、と思うのですが?
もしかして「おまじない」とかが好きなんですか?
半角氏は連続して投稿する傾向にあり、IDだけで割合に弾けるのでワッチョイは要らないと思っています

307:デフォルトの名無しさん
18/07/26 23:42:18.00 5Jkoyh2A.net
あんなテンプレいらんだろ…
まさか自分が作ったとか?

308:デフォルトの名無しさん
18/07/26 23:55:55.79 JU6NqyqF.net
>>295
> テンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない
ならあってもいいって事になるが、それに対する反論は?
俺はワッチョイもあのテンプレも機能してたと見ている。
実際、もう初心者要らないんじゃ、って話になってたのは事実だろ。
お前がそれに反対したのも事実だが。

309:デフォルトの名無しさん
18/07/26 23:59:13.70 OhRJcz2i.net
>>280
ご意見ありがとうございます。
SECTIONごとの切り替え目安は下記の時間でSECTIONを切り替えながら別のGUIソフトでマウスを使って改善していきます。
①数値の数が一桁~二桁程度だと数分で切り替え、
②数百~数千レベルだと数十分~数時間で切り替え、
③そしてまた再実行しファイルを読み込み①に戻る
初期の小さい規模ではSECTION数が数十個で、各SECTIONの数値の個数はせいぜい数百レベルなのでSECTIONの切り替えが頻繁に発生します。
そして①~③を回すのが数十分~数時間くらいでそれをくるくる回します。
数ギガレベルになるのは終盤になってからです。
という感じなのでファイルの再生成が頻繁に行われ、かつGUIでマウスで改善していくので
マウスが手放せず解析表示もGUI操作が必須になる、という感じになっています。
小さい規模では特にSECTION切り替えが頻繁に発生するのでファイル分割で管理がわずらわしくなるのを避けたい。
まずここに重点を置き、そうすると大きい規模では読み込み時間がネックになるので高速化で対応しよう。
という状況で現在に至っているところでした。

310:デフォルトの名無しさん
18/07/27 00:01:55.2


311:5 ID:wdZoBIJt.net



312:デフォルトの名無しさん
18/07/27 00:03:32.92 o3vIRrYt.net
>>293
そんなもんなんだ
Char**→LPCWSTR変換ってsetlocale使う方法しかない?

313:
18/07/27 00:13:35.77 dNDh2QHO.net
>>297
>ならあってもいいって事になるが、
そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
同様に、例のテンプレが張ってあるスレの存在下で、新たにテンプレなしの新スレを作る必要もない、と考えます

314:デフォルトの名無しさん
18/07/27 00:32:44.94 27BaLAkY.net
>>300
setlocaleは関係ない。setlocaleは、C関連の設定をすべて変えてしまうので、ここでは呼ばないほうがいい。
MultiByteToWideChar() で可能。
出力用のLPWSTR バッファは、スタックなりmalloc, new, std::vector<wchar_t> なりで確保したヒープメモリを使い、
受け取ったLPWSTR バッファの中身をCComBSTRのインスタンスにコピーするのがいいと思う。

315:デフォルトの名無しさん
18/07/27 00:44:14.53 wdZoBIJt.net
>>301
> そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
じゃあそう書けよドアホ
そしてその場合は285に安価しろ

まあとにかく、俺は新しくスレを立て直すことに賛成だ。
あのテンプレも機能してたと思う。
そして15GB君と半角キチガイには何も教えてやる気はない。
スレ住民が出来ることは、正答例を提示することのみであり、
今回はこれは複数人から十分為されている。
ゴミなのは質問者および半角キチガイ馬鹿だけであり、
ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、
このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。
んで、ついでに正解提供者がHDDの速度について知らないようだから教えておいてやる。
サーバーのHDDは一般にRAIDになっており、スループットだけはいくらでも上げられる。
詳しくはググッた方が分かりやすいからそうしろ。
なお一般PCも今時はRAIDを標準装備しているが、
1. そもそも複数HDDを接続しない
2. マザー等HDD以外の故障の場合に余計に死ねる
ので一般PCでRAIDを構成することはあまり無い。
また、SSDが速いのはランダムリードであり、
シーケンシャルライト(ログ吐き)の場合はHDDの方が速かったりしたはず。
質問者と半角キチガイは死ねでしかないが、
正解提供者が疑問に思っていることがあれば、知ってれば答えてやるよ。
スレの質を上げる為に努力した奴らは報われるべきだと思うから。
今回は質問者が悪すぎた。これはご愁傷様。

316:デフォルトの名無しさん
18/07/27 00:49:14.72 X8KcH05s.net
オレが強いワケがないからな
クソニートどもがよわっちいだけだからな
クソニートどもが社会人に勝てるワケがない
クソニートどもがとてつもなく弱いワケ
その自覚がないのが恐ろしい

317:デフォルトの名無しさん
18/07/27 00:50:56.55 X8KcH05s.net
クソニートどもの戯言が正解だって()
身の程知らずもいいところ
クソニートどもはクソニートの狭い世界で
すべてが完結してるからな
その自覚がないから救いようがない

318:デフォルトの名無しさん
18/07/27 00:53:36.63 X8KcH05s.net
このスレに相談してくる人間は
クソニートのアドバイスなんか求めてないわけ?
わかる?
オレみたいなプロフェッショナルに回答を求めてるわけ
クソニートのテキトーな戯言なんかだれも求めてない
わかった?

319:
18/07/27 00:54:58.75 dNDh2QHO.net
>>303
>あのテンプレも機能してたと思う。
根拠は?
>ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、
>このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。
新しくスレを立てても、そのスレにて半角君や150G君が発言を継続するのであれば、事態は変わらないのでは?
月並みな話だけれども、単にスルー力が足りないだけなのでは?
5年、10年とスルーし続けることも必要な場合はあると思います

320:デフォルトの名無しさん
18/07/27 00:56:25.04 A3iaMhaK.net
わかった

321:デフォルトの名無しさん
18/07/27 01:18:44.81 wdZoBIJt.net
>>307
なるほどお前とは話が通じないことは分かった。
お前が嫌われるのも納得だ。
> 根拠は?
先に「機能してなかった」根拠を提示してみろ。
> 事態は変わらないのでは?
ワッチョイがあればここまで酷くはならない、というのが彼の見方で、
俺もそう思う、ということ。
というかマジでお前話の内容について来れてないだろ。
無理して食いついてこなくてもいいぞ。邪魔でしかないから。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch