- 1 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 16:46:53.58 ID:op86qfG/.net]
- ■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467211515/ ■次スレは>>970が建てる事。 建てられない場合は他を指定する事。
- 261 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 23:40:54.02 ID:o2MHRqlI.net]
- >>238
最近の本は安くなってるよ。 一番高かったのは2000年当時、Windows関連書籍で一冊1万越えもあった。 平均7、8千円かな、5千円だと安いと感じた。 本代はケチらずばんばん買ってる。 飯の種だし、1日悩んでたら人件費何万になる? 本買って解決すれば安上がり。
- 262 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 00:00:06.65 ID:8+bIkryZ.net]
- >>251
WPF → UWP という進化だよw
- 263 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 00:13:12.42 ID:3lr7jZCG.net]
- 一応最終的には全ての組み合わせが出来ることを目指してるんだろ?
看板付け替えただけ、という見方かもしれんが、俺は進化でいいと思うぞ。
- 264 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 00:17:57.53 ID:C4A7F+ay.net]
- >>251
MFCでだいぶ前からhtml/c++はできるじゃん。
- 265 名前:デフォルトの名無しさん [2017/02/28(火) 19:37:38.52 ID:yxAUZLha.net]
- テキストファイル中の、特定の行だけを読み込むにはどうしたらいいでしょうか?
読みたい行が何行目かは決まってるんですが、 1.1行目からその行までに含まれる文字数 2.読みたい行からファイルの末尾までの行数 は不定です。 FileStream.Seekの、バイト数ではなく行数指定出来るものがあればいいんですが。
- 266 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 19:42:51.05 ID:9Xdv30xY.net]
- >>257
ループ回して対象行のカウントでホゲホゲすれば?
- 267 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 19:44:38.27 ID:yxAUZLha.net]
- >>258
ありがとうございます。 うまくできました。 StreamReader reader = new StreamReader(file,Encoding.Default); for(int i = 0; i < 10; i++) { reader.ReadLine(); }
- 268 名前:this.listBox1.Items.Add(reader.ReadLine()); []
- [ここ壊れてます]
- 269 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 20:23:35.47 ID:K7hLR7oh.net]
- >>259
実践で使えないコード過ぎてイラっときた 気分で改行したら終わりって
- 270 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 20:29:23.68 ID:+WocOs48.net]
- >>260
読みたい行が何行目かは決まってるのに気分で改行したがるその仕様無視にイラっときた
- 271 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 20:35:19.50 ID:K7hLR7oh.net]
- 本当はキーワードがありそうじゃん
n行目ってのはあくまで質問者が宿題を読んだ感想文なわけで
- 272 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 20:37:44.89 ID:Fq1JMnLG.net]
- >>262
エスパーさんはいらないから 汎用性のないコードだってのならともかく「本来はこんな問題のはず」とか議論しても何もならん
- 273 名前:デフォルトの名無しさん [2017/02/28(火) 21:08:18.23 ID:pIiGTdLD.net]
- >>260
どこが実践で使えないんだ(笑)
- 274 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 21:15:58.55 ID:wrouDyFM.net]
- とんちき臭がする
- 275 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 21:19:57.27 ID:BFmlECVl.net]
- ClosedXMLを使って、2行分のデータとスタイル(罫線等)を、任意の2行へコピーしようとしています。
CopyToを使って動かしてみると、マージされているセルなどが思った通りにはコピーされないようです。 worksheet.Range(rowno + 2 + ":" + rowno + 3).CopyTo(worksheet.Range(rowno + 4 + ":" + rowno + 5)); お助けください
- 276 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 21:34:46.83 ID:A2md68KB.net]
- 2 + ":"
こういうの気持ち悪い
- 277 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 21:59:17.96 ID:39alJvfi.net]
- >>259
StreamReaderをCloseしようね 内部的には同じだけどFile.ReadLines()を使ってElementAt()とかで目的の行が取れるよ
- 278 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 22:08:38.41 ID:s47hQ+GZ.net]
- >>264
じゃ、お前んとこってテキストファイルの行数でデータ定義するの?
- 279 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 22:11:57.45 ID:39alJvfi.net]
- ログファイルの1行目と2行目はヘッダーだからみたいな定義は十分ありえるだろ
- 280 名前:デフォルトの名無しさん [2017/02/28(火) 22:14:30.88 ID:pIiGTdLD.net]
- >>269
普通にID管理だけど、チートやバグが発生した場合に行数管理で正常か どうか判断する局面も有るけど?
- 281 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 22:24:32.74 ID:+WocOs48.net]
- >>269
測定データ1分1行で定義されてて、1日置き=1440行ごと読み出しとか、行数でのデータ取扱なんてざらだよ
- 282 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 23:03:34.74 ID:s47hQ+GZ.net]
- >>272
面倒でも日時入れるわ データがないとき(?)って空白出すの? 超面倒じゃん データがないって判定もヤバそう
- 283 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 23:10:22.11 ID:AHF/JWRt.net]
- >>268
ReadLinesは全部メモリに読むから、ファイルがでかい可能性があるなら避けたほうがよいかも
- 284 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 23:12:03.23 ID:z/77EZzb.net]
- メインフレームのシーケンシャルファイル(固定長レコードのバイナリファイル)ですら件数で判断なんかやらねえわ
運用が面倒臭すぎる
- 285 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 23:25:18.45 ID:39alJvfi.net]
- >>274
読まないよ 全部読むのはReadAllLines
- 286 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 01:43:58.56 ID:jez9uqUV.net]
- 自分もテキストでハマってるわ。
テキスト読み出しながら、登録したキーワードに引っかかったらreplaceする必要があるんだけど、(足りない脳味噌の範囲で)どうやってもクッソ遅い。
- 287 名前:キーワードと置換後文字はDictionaryで管理してるけど、そもそもキーワードが8200程ある上に、テキストも1ファイルあたり平均約2.7万文字あってもう無理(テキストファイルは1日あたり1600ほど生産されてる)
速度は諦めるしかない? [] - [ここ壊れてます]
- 288 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 01:54:31.83 ID:XgpeB6sR.net]
- >>276
すまん、そうだった
- 289 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 04:22:26.99 ID:uGJVx5D1.net]
- >>277
どのくらいで遅いって言ってるのか次第じゃない? キーワードにマッチする単位で単語分割できてれば入力の単語単位で辞書にぶつけるのが効率よさそう ただ3万文字程度ならキーワードの数だけ入力を走査しても言うほど時間かからない気がする
- 290 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 07:58:17.12 ID:ElQ6OcG3.net]
- >>277
キーワードを予め文字単位でツリー化しておいて辿っていけば? 1文字読むたびに最大でもキーワードの最大文字数と同じ数だけのツリーのポインタを1歩進めるだけで済む
- 291 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 08:04:58.33 ID:SJrJxNnQ.net]
- >>268
> StreamReaderをCloseしようね そこは using だろ
- 292 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 08:26:19.47 ID:mkeal5qn.net]
- トライ木か
- 293 名前:デフォルトの名無しさん [2017/03/01(水) 14:31:13.79 ID:UzmiTiRe.net]
- System.Net.CookieのDomainについてですが、RFC 6265の4.1.2.3が実現できないように思えます
Domainのスコープを設定するにはどうすればいいでしょうか?
- 294 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 15:36:27.74 ID:yuocqMDO.net]
- キーワード「ねこ・こねこ」があるとき、「こねこ」はどちらに該当する?
また、キーワード「こね・ねこ」があるとき、どちらに該当する?
- 295 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 17:28:21.57 ID:9PjUMtQQ.net]
- 初心者質問すみません
フォームにボタンAとボタンBの二つのボタンがあります ボタンAをクリックすると、ある反復処理が延々と繰り返されます ボタンBをクリックしてこの反復処理をストップさせるには通常どのような記述をするのでしょうか
- 296 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 17:33:43.62 ID:kRYqKFSr.net]
- >>285
反復処理の中に条件付き中断処理を入れる もう一つのボタンを押したときに中断処理用のフラグをセットする もちろん別スレッドじゃないとボタン押せないけど
- 297 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 17:36:44.01 ID:kRYqKFSr.net]
- 連レスごめん
反復処理中にApplication.DoEvents入れてもボタンの入力受けるけど 反応悪くなるし、今時はまず使わないだろうな
- 298 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:13:43.54 ID:1ptPBH8r.net]
- >>285
CancellationTokenSource cancellationTokenSource; async buttonA_Click() { this.cancellationTokenSource = new CancellationTokenSource(); while ( this.cancellationTokenSource.Token.IsCancellationRequested ) { await Task.Run( () => { // 何か }, this.cancellationTokenSource.Token ); } } private void buttonB_Click() { this.cancellationTokenSource.Cancel(); }
- 299 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:21:54.77 ID:z3LIBqaM.net]
- >>279に一票。
- 300 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:31:02.44 ID:CFmNTLsk.net]
- >>277
ソース上げたら誰かみてくれるよ
- 301 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:53:57.57 ID:SJrJxNnQ.net]
- 正規表現に 8,200個も連結して検索させたら死ぬかな?
- 302 名前:デフォルトの名無しさん [2017/03/01(水) 20:31:55.65 ID:r70GDLNP.net]
- >>291
not Defined
- 303 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 21:37:40.58 ID:PGtJZLdC.net]
- C#から2chに書き込みたいんだけど、
「At2chLib」が使用できなくなってて困っています。 なにか良いライブラリとか有りますか?
- 304 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 21:39:56.43 ID:PR7YLHWZ.net]
- HttpClient
- 305 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 21:46:15.04 ID:RAuT14LS.net]
- 荒らしツールは日本では違法だぞ。
- 306 名前:デフォルトの名無しさん [2017/03/01(水) 22:01:49.72 ID:r70GDLNP.net]
- いやぁ……海外でもダメだろ
- 307 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 22:08:23.90 ID:PGtJZLdC.net]
- 荒らしじゃなく、荒らし駆除的なの作りたいんだけどなー
- 308 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 22:31:30.38 ID:78O8EuSm.net]
- 荒らしに構う奴も荒らしだぞ
- 309 名前:デフォルトの名無しさん [2017/03/01(水) 22:38:28.52 ID:fB20izlq.net]
- >>295
違法だったら良いのにな… もし違法だったらVIPで埋めまくってる奴逮捕されていなくなるはずなのにな… はぁ…
- 310 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 23:00:18.14 ID:U2Od4VRx.net]
- VIPなんぞ行かなくてよろしい
- 311 名前:デフォルトの名無しさん [2017/03/01(水) 23:13:49.83 ID:fB20izlq.net]
- ゲ雑…
- 312 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 23:57:19.29 ID:6tJnN0su.net]
- >>287
1処理1個挟むんじゃなくて100処理か1000処理に1回ぐらいでお願いします
- 313 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 00:33:44.50 ID:IBdXO0OO.net]
- >>277
どこが遅いか分析が足りてないな キーワードにヒットしたら番地とヒットしたキーワード格納して置換はしないでみたら? 置換って頭使わないと最悪な方法で処理してくれてる気がする abcを見つけたらdefghijkに変換してくれる処理って c言語だったら変換後の配列のサイズの計算からしなきゃいけないわけで それをc#ってreplaceしやがったら配列の再確保余裕でしたみたいなことするアホだろ その辺は考慮に入ってる?
- 314 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 00:54:02.49 ID:FuaoIGJx.net]
- やっとらおまえらも実装してはじめてMSのWordが糞遅い理由を理解してくれたか。
- 315 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 00:54:51.19 ID:IBdXO0OO.net]
- ならば文字列をつなげていくかとして
str1 + str2 みたいなことするとこれも合体後の文字列の長さで配列を再確保する 3万文字もある文字列だと1回文字列連結をするだけでヤバイ 変換に使用するキーワードの使用回数から最終的な文字列の長さを算出する必要があるかも ってそれも考慮済みだろうか?
- 316 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 00:58:24.20 ID:FuaoIGJx.net]
- string使ってるという馬鹿なオチかよ。これだからC言語できない奴は。
- 317 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:07:45.83 ID:B13E3oAw.net]
- アルゴリズムの問題。stringだろうと*だろうと同じだろ。これだから自称C使いは・・・
- 318 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:09:29.82 ID:FuaoIGJx.net]
- アホに世界常識を教えてやる。
stringは糞遅い。 だからMSは最初から別のクラスを用意してる。ググレカスども。
- 319 名前:デフォルトの名無しさん [2017/03/02(木) 01:14:29.76 ID:oXaAut0o.net]
- ボディービルダーになれば良いらしいのか
- 320 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:18:09.17 ID:iFkNWUjs.net]
- 興味があるならどうぞ StringBuilderのReplace
https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs,1485 https://referencesource.microsoft.com/#mscorlib/system/text/stringbuilder.cs,1535
- 321 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:20:26.39 ID:iFkNWUjs.net]
- >>308
Replaceのパフォーマンスはそんな変わらないよ ググレカス
- 322 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:22:58.33 ID:o9lMs6ta.net]
- ここはWinFormsだし、10年前のインターネッツだな。
- 323 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 01:23:22.99 ID:FuaoIGJx.net]
- おれがコード書けば瞬殺レベルの高速化できる案件。
最後のヒントな。 大山札
- 324 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 02:04:51.98 ID:ggH8M0CB.net]
- >>313
もしかしてあらかじめ領域を準備して,自分で足していく,とか‥
- 325 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 02:30:07.47 ID:4HioNM+3.net]
- >>299
違法と犯罪は違うぞ
- 326 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 02:41:55.30 ID:iFkNWUjs.net]
- >>313
>>280
- 327 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 06:45:07.41 ID:JZiPjSZc.net]
- 言語だのStringBuilderだのという小手先のテクニックの問題ではないだろ
>>280のアルゴリズムで実装したら100倍とかのオーダーで速くなるはず
- 328 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 07:40:36.76 ID:WqhQkxL/.net]
- 口だけならなんとでも言え
- 329 名前:る
実装して計測してコードと計測結果を晒してから主張して [] - [ここ壊れてます]
- 330 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 07:52:06.73 ID:Ct6l/xwh.net]
- >>317
280は検索で遅いとき 置換で遅いときはstringbuilderをキッチリサイズ指定する方法でやらないとダメ まず切り分けかな?
- 331 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 08:49:47.79 ID:oX3M/pPf.net]
- 検索が8,200あるのに、マッチするのはそのうち1つ有るかどうかなんだから
圧倒的に検索の問題になるだろうね 普通は
- 332 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 09:05:00.59 ID:Ct6l/xwh.net]
- >>320
いや3万文字を置換のたびに1回1回stringのreplaceしてたらその度に3万文字分の配列を再確保 これが致命的 stringのreplaceはやってはならない stringbuilderで これも使い方悪いと速度出ないので正しい感じで
- 333 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 09:06:59.45 ID:Ct6l/xwh.net]
- キーワードの検索の方はdictionary使ってるって言うし十分早いんじゃないかと予想
- 334 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 09:07:18.82 ID:cjA1b3op.net]
- ツリーポインタに文字列中の開始インデックスをセットで持たせておいて、
終端ノードまで来たら開始インデックスから後を削除し、終端ノードに持たせてある置換文字列を付加し、現在のツリーポインタを全て破棄 こうすれば280で置換も効率的にやれるよ
- 335 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 09:17:20.56 ID:cjA1b3op.net]
- >>321
それ文字列が長ければreplaceのための線形探索がネックになるはずで、StringBuilderは直接関係ないでしょ 簡単に効率を改善するんなら、全キーワードのうち最長のキーワードの文字数と同じサイズのバッファを持っといて そこに対して置換をかけりゃいい もちろんその置換結果を最終出力の文字列として連結していくところはStringBuilderを使うべきだけど
- 336 名前:デフォルトの名無しさん [2017/03/02(木) 10:02:53.43 ID:xcfTeAxl.net]
- 問題は用途が不明だから、仕様が決まらない
に限定されると思ふ ノ ヽ(・ω・)/ズコー
- 337 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 12:13:19.52 ID:63yIksCz.net]
- いいからコード書いて結果出そうぜ
- 338 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 13:30:45.83 ID:NvG2Ox0H.net]
- ある程度の個数だとキーワードを全部つなげた正規表現を作るのが定石っぽいけど、
一万近いとどうなんだろうか
- 339 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 13:39:24.58 ID:Ct6l/xwh.net]
- >>324
置換後に短くなっても駄目っぽいけどね
- 340 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 13:42:21.47 ID:j0RdOmJS.net]
- 8200のうちマッチが1つあるかどうかなのか、マッチがたくさんあるのか
で方法変えた方がいいな
- 341 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 16:45:48.51 ID:yzi1qiN6.net]
- >>277
そんな変な処理をしなければいいだろ。 解決!
- 342 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:36:05.41 ID:tOCPWbBv.net]
- こういうアルゴリズムのボトルネックってどうやって探すんだ?
- 343 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:43:30.86 ID:j0RdOmJS.net]
- アルゴリズムのというか、処理のボトルネックはパフォーマンスプロファイルで出る
- 344 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:47:35.64 ID:eNjjKtZ0.net]
- 味見すりゃ分かるだろ。
それ以前にベタにやっても余裕だと思うが。
- 345 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:54:31.82 ID:Ct6l/xwh.net]
- >>331
プロファイラ使えるようになるのが一番いいね ただ、それじゃわかりにくいときもあるから知恵をつけるのも大事だと思う
- 346 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:14:46.47 ID:eNjjKtZ0.net]
- ちなみに今回のはプロファイラでは分からんぞ。
例えばString.Replaceと出て終わり。 https://msdn.microsoft.com/ja-jp/library/ms182372.aspx https://msdn.microsoft.com/ja-jp/library/fk49wtc1(v=vs.110).aspx その先の解像度は一般的に無いでしょ。(俺はC#のプロファイラを使ったことは無い) だからここでやってるみたいにCLR内の動作を考える必要がある。
- 347 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:23:23.74 ID:j0RdOmJS.net]
- >>335
それはプロファイラの考え方を間違ってる(使ってないみたいだから知らないのは当然かもしれんが) replaceがネックって出れば
- 348 名前:サれでいいんだよ []
- [ここ壊れてます]
- 349 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:34:59.52 ID:Ct6l/xwh.net]
- >>336
そうだね さらにgoogleで replace 遅い c# なんてキーワードで検索かければもう解決方法も見つかったようなもんだね
- 350 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:42:38.33 ID:eNjjKtZ0.net]
- >>336
いや俺は他言語(JavaScript)ではプロファイラ使いまくりだぞ。 そしてプロファイラ自体は見た目ほぼ同じだし。当たり前だが。 というか今回は20行程度のプログラムで2重ループするだけだろ。 ベタでやった場合、String.Replaceが出るに決まってるだろ。 お前はアホの子か? 問題はそれをどう変えたらどう改善されるかの見通しを立てることだろ。 それはここでみんながやってるように、自分で考えないと分からない。 とはいえここで案を出してもらってるんだし、後はがんばれでしかないが。
- 351 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:44:03.61 ID:maE+uJIv.net]
- >>338
馬鹿は一生js書いてろ くせえから出歩くなクソが
- 352 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:49:46.45 ID:rlmCwDYA.net]
- javascriptのプロファイリングは大切だからねえ
品質の悪いライブラリと品質の悪い人材によって書かれているから すぐsucks so muchになるんだ
- 353 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 21:44:03.77 ID:eNjjKtZ0.net]
- >>340
いやJavaScriptはJITがエグイからでしょ。(同じ傾向はC#にもあるはずだが) 例えばHTMLの特殊文字を変更する場合、string.replace(Regex,func)で纏めるよりも、 数個なら string.replace().replace().replace() とかハードコードした方が速かったりする。 ボトルネックがソースから予測しづらいからプロファイラを使うしかない。 その点、Cは最初から見えた状態で書くからいい。 ただこのあっさり感、C#ならString, StringBuilder, Regexで試して、 それ以上は諦める文化なのかもしれんね。そういう用途の言語ではあるし。 C的アプローチで限界速度を追求するのではなくてね。
- 354 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:07:46.01 ID:GM13pkfI.net]
- やっぱここで質問したのが間違いでした
ろくな解決策が出ないので もう結構です
- 355 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:16:35.43 ID:cZXazyZL.net]
- なあ、、、
文字列探索アルゴリズムの問題だと思うのは俺だけかな? そこを自前で実装すれば高速化できると思うのだけど
- 356 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:22:10.27 ID:4qcBtzlj.net]
- >>343
それは>>280で出てる
- 357 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:22:40.42 ID:cZXazyZL.net]
- developer.hatenastaff.com/entry/2016/12/22/210006
置き換え後、どこに格納するかはたいして重要じゃないはず。 状況に応じた探索アルゴリズムを使用することが重要。 自前実装は辛いけど。
- 358 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:31:45.18 ID:ELiKOyhw.net]
- 誰か>>280を実装してみてよ
- 359 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:34:13.74 ID:4qcBtzlj.net]
- >>345
その「状況」は単純に探索をどうするかだけではないよ 置換処理に適したアルゴリズムを使用することが重要 その意味ではトライ木を使った方法(280)はリアルタイムで読んだそばから置換できるから目的に合ってる
- 360 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:50:58.21 ID:pVtcQ1mY.net]
- そもそも何が目的なのか説明しろよ
- 361 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 07:54:40.78 ID:a7lwSDS4.net]
- アフィ目的って気づけよバカども
|

|