素人のインタプリタを速くするスレ

1 :仕様書無しさん:2014/10/04(土) 20:01:10.18 .net
http://www1.axfc.net/u/3334871

なんか遅い気がするので修正頼む。
知恵袋よりいいかなと思って立てました。
多分改善点はあると思います。

ここ間違ってるってあったら修正します(ほぼ毎日20:00-21:00頃います)

多分何してるかは見たらわかると思います。

ではよろしく。

28 :仕様書無しさん:2014/10/18(土) 23:04:53.55 .net

桁が3つ足りねえよクズ

55 :仕様書無しさん:2014/11/14(金) 10:39:04.39 .net

c/c++の場合だけど配列でのジャンプがハッシュ使ってるコンテナより遅くなることはあった、ハッシュを工夫する必要すらなかった
その時一番速かったのは結局最適化前提のswitchで、じゃあ最初からswitch使えよって話なんだけど
長いswitch書きたくなくてswitchのコードを自動生成するツールを作った

53 :仕様書無しさん:2014/11/07(金) 23:34:18.33 .net

>>45
HashMapがなんだかわかってないだろ

13 :仕様書無しさん:2014/10/05(日) 19:20:11.93 .net

URL貼り忘れました
http://www1.axfc.net/u/3335645

46 :仕様書無しさん:2014/10/26(日) 10:24:12.33 .net

北海道セラピー学院中嶋聡 死 ね
キモイで醜男
こいつセラピーとかいって人のクリ○リス触ってきたよ マジで死ね

4 :仕様書無しさん:2014/10/05(日) 08:16:06.00 .net

>>1
とりあえず、if/elseの化け物みたいなの止めろ
switchのが早くなるが、
バイトコードやりたいなら↓みたいな、関数ポインタ使ってランダムアクセスさせたほうが早い
typedef void(*tp10e_operator_t)(unsigned char *mem, REGS *regs);
static tp10e_operator_t operator_table[sizeof char] = {
/*NOP*/tp10e_nop,
/*MOV*/tp10e_mov,
/*ADD*/tp10e_add,
//(ry
};

getargs_one/getargs_twoはswitchに切り替えろ。
getargs_one/getargs_twoがおそらく速度のボトルネックになるから最適化の余地はあるな。
ARGS_ONE/ARGS_TWOは.hで公開する必要ないし構造体である必要もない気がするから、いまその構造体のメンバつかってるのはローカル変数でもええやろ

あと、こんだけかけるなら言う必要ねーかも試練が、unsigned charとかはtypedefしたほうが楽じゃね?ってかバイトコードなら変数が何ビットなのか固定させとかんといかんと思う。
あと、used1とused2ってなに?これローカル変数でよくね?速度だすならグローバル変数より若干速くなるような気がするがc言語5年ぶりだから覚えてない。
あと、このソース(.c)の外部に公開しない関数ならstaticつけたほうが無難かな。
.hってインクルードガードしなくてええの?

一応ぱっと見こんなところだとおもう。

21 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/09(木) 15:24:59.33 .net

http://katahiromz.web.fc2.com/xword/
https://github.com/katahiromz/XWordGiver

たくさんコアがあったら、10×10でもすぐ解が求められるかな???
マルチコアに詳しくないからわからない。だれか教えて

54 :仕様書無しさん:2014/11/08(土) 00:05:12.50 .net

どの手法が速いかなんて個々のJVMの実装次第じゃねえの
考えにくいがJVMによっては配列がMapより遅くなることもありえるんじゃないのか

30 :仕様書無しさん:2014/10/18(土) 23:55:17.43 .net

3000円なんて手付金レベルじゃねえかw

52 :仕様書無しさん:2014/11/04(火) 18:38:29.26 .net

http://ideone.com/jEwpHw
ひとまずLISPのトークン分解は出来た

51 :仕様書無しさん:2014/11/01(土) 18:03:08.13 .net

ランタイムで特性計算できたらカッコいいな。

3 :仕様書無しさん:2014/10/05(日) 00:03:03.06 .net

じゃあこれも頼んだ
http://ideone.com/FeUdtC

42 :仕様書無しさん:2014/10/26(日) 02:54:47.02 .net

Javaはswitchがかなり高速だな

http://ideone.com/SFR1UA

42 :仕様書無しさん:2014/10/26(日) 02:54:47.02 .net

Javaはswitchがかなり高速だな

http://ideone.com/SFR1UA

26 :仕様書無しさん:2014/10/18(土) 22:53:23.82 .net

pull request?俺に修正させる気?

47 :仕様書無しさん:2014/10/26(日) 14:18:48.26 .net

>>44,45
Mapって検索方法をハッシュ法使えってことだろ。
switchがテーブル化されること期待できるならswitchのが高速。

検索の速度においては
配列(ランダムアクセス) > ハッシュ法 >= リスト(シーケンシャルアクセス)

2 :仕様書無しさん:2014/10/04(土) 22:50:19.41 .net

以下Photoshop職人の手による匠のコラが始まります。

38 :仕様書無しさん:2014/10/23(木) 14:44:11.61 .net

情報処理技術者試験のCOMET IIをtableswitchにしてみた
http://ideone.com/rPF3VH

43 :仕様書無しさん:2014/10/26(日) 03:22:46.13 .net

>>5が言う
> 実行部分は
> まず、switchやめてMap使え。

Mapってどういう仕組みの処理なん?

15 :仕様書無しさん:2014/10/06(月) 10:51:03.10 .net

>>14さん
結局自己解決しました。
今のところ128コア・256sheetで快適に動いてます。
(C2D E8400 OC 3.6GHz + ASUS GTX650 GDDR5 1GB)

27 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/18(土) 23:01:22.27 .net

アマゾンギフト券3000円くらいで頼む。実測で高速化確認が前提で。

60 :仕様書無しさん:2017/12/29(金) 22:06:07.22 .net

誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

L9UL2UMY6S

5 :仕様書無しさん:2014/10/05(日) 08:47:56.48 .net

>>3
なぜ今の時代にBASIC作ろうとしたしw
ってかどこの誰のソースだよw

あえていうと、まず速度出そうってプログラムじゃなさそうだから速くできるかは五分五分だな。

構文解析の部分は
Tokenizer.tokenize()で正規表現やめると早くなるだろう。
ってかbison使え。

実行部分は
まず、switchやめてMap使え。

あと
例外処理のtry-catchは使うな。
メソッド呼び出しが多すぎんだよ、速度出せってほうがもう無理だな

10 :仕様書無しさん:2014/10/05(日) 17:47:26.37 .net

Javaなら標準のトーカナイザ使おうぜ
http://docs.oracle.com/javase/jp/7/api/java/io/StreamTokenizer.html

61 :仕様書無しさん:2018/05/22(火) 13:10:43.24 .net

とても簡単な自宅で稼げる方法
参考までに書いておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

ENIYK

22 :仕様書無しさん:2014/10/09(木) 21:57:36.61 .net

ざっと眺めてみてよく書いたと思うよ。
何となくだが、細かい部分で高速化できる部分は散見されるが本質的なアルゴリズムの部分に踏み込むには骨が折れそうだw
XgSolveXWordRecurse/XgSolveXWordNoAddBlackRecurse/XgSolveXWordがどういう理由付けで
関数わけされたのかいまいちわからんし。。。

XgSolveXWord()のなかで、単語の配列(リスト?)でループまわしてるけど、
その中で、長さチェックしてる部分。これって事前に長さ別に配列に保持すると高速化できたりするかも。

あと、2313行目の後にbreak;入れると若干無駄がなくなるかな

18 :仕様書無しさん:2014/10/08(水) 14:09:35.11 .net

片山ってあのゆうちゃんの親戚筋?

35 :仕様書無しさん:2014/10/22(水) 07:11:51.79 .net

>>29
みたいってなんだよ
糞そのものだろ

45 :仕様書無しさん:2014/10/26(日) 03:31:42.83 .net

Mapというのは配列によるアクセスよりも速いのだろうか

29 :仕様書無しさん:2014/10/18(土) 23:52:11.58 .net

久々にレス入れたと思えばくそみたいなこといいがやるのなw

12 :仕様書無しさん:2014/10/05(日) 19:17:53.60 .net

>>4さん
ありがとうございます
採用させていただきます。
あとこのインタプリタを仮想マシン(環境?)
に採用したのですが
なぜか上手く動きません。
ここにプロジェクトあげとくので
修正点などあったらご指摘お願いします。

仕様:
ベースアドレス:0x1000
CPUの処理構造体(REGS、TP10E_CALLBACK)512個
512コアを順番に切り替えて一命令ずつ実行

問題点:
>>4さんのコード採用前・後ともに)
・実行が割り込み後の0x1067で止まる
・2コア目がなぜか0x1060で止まる

正常に動けば:
・タイトルが”window”というウィンドウが画面内に二つ出てくる
・そのうちひとつはもうひとつより少し(16ドット)右下

ここもよろしくお願いします。

ちなみに>>3
僕じゃないです。

50 :仕様書無しさん:2014/11/01(土) 06:02:49.52 .net

データの特性を見てシノニムが発生しにくいキーを生成するようにする

23 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/09(木) 22:34:22.78 .net

レビューありがとう。

確かにnCountは外に出した方がいいな。
2313行は、どこ?

33 :仕様書無しさん:2014/10/19(日) 00:53:46.56 .net

お前、素人じゃねえだろ

49 :仕様書無しさん:2014/10/29(水) 23:32:16.13 .net

え?

44 :仕様書無しさん:2014/10/26(日) 03:30:52.86 .net

http://ideone.com/uuL5FS

Mapとやらをswitchと比較したいのに
Mapの実装の仕方が分からないから比較できない

39 :仕様書無しさん:2014/10/23(木) 14:47:55.81 .net

ちゃんとtableswitchになってるょ

http://pastebin.com/UDw6GNMA

19 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/08(水) 14:20:01.66 .net

親族でも親戚でもないよ。。。
同じ苗字や同姓同名が多いのは知っているが。。。

9 :仕様書無しさん:2014/10/05(日) 14:00:01.09 .net

例外処理やめろってのは言い過ぎたか。
まぁ、あっても速度が劇的にって期待できるわけでもねーしいいや
んじゃ全部のメソッドstaticにしようぜ

24 :仕様書無しさん:2014/10/09(木) 22:58:23.49 .net

xword.cppの2313行目の下にbreakじゃなくてその多重ループ抜ける処理かけば無駄なループが軽減できるってだけな。

nCount外に出すとかじゃなく単語探すのに、
先に探したい文字列の長さ決まってるっぽいからmap<length,list<word>>で先に分けておくと無駄なループが省けるってことだな。

57 :仕様書無しさん:2015/11/18(水) 09:38:10.89 .net

お前ら利益追求しろよ!
IT財産
経営者 右肩上がり
技術者 右肩下がり

6 :仕様書無しさん:2014/10/05(日) 09:19:22.53 .net

横からだが、例外処理入れなかったら、例外が発生した時にどうするんだ?

48 :仕様書無しさん:2014/10/26(日) 21:42:41.02 .net

ハッシュって実装の仕方で差異が大きくないか?

32 :片山博文MZ次期CEO ◆T6xkBnTXz7B0 :2014/10/19(日) 00:47:32.44 .net

長さごとに単語データをまとめるのをやってみたけど、
あまり早くならなかったんだよね。やり方が悪いのか

8 :仕様書無しさん:2014/10/05(日) 11:32:23.49 .net

それは非常に難しい要求だなw
なんせ、Javaは例外処理を前提で作られたライブラリだからなw

7 :仕様書無しさん:2014/10/05(日) 09:28:09.72 .net

速度出せって要求だから例外処理はtry-catchはしない。
全部自前で処理しろ。

20 :仕様書無しさん:2014/10/08(水) 15:07:06.07 .net

そりゃ実際に犯罪者と親戚だとしても堂々と親戚だなんて言えないわな

16 :仕様書無しさん:2014/10/08(水) 03:38:12.44 .net

>>5
javaってswitchのほうが速いんじゃないの?

40 :仕様書無しさん:2014/10/23(木) 21:12:51.03 .net

引数が0個のときNOPが出るんだけど、

41 :仕様書無しさん:2014/10/23(木) 22:57:25.87 .net

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

  • teratailもりあがっtail? 70問目

    元スレ 1 :仕様書無しさん:2021/03/15(月) 06:42:38.57 .net teratail http://teratail.com/ 前スレ teratailもりあがっtail? 69問目 https:…

  • 競技プログラミングにハマるプログラマのスレ 64

    元スレ 1 :仕様書無しさん:2021/08/07(土) 00:25:54.11 .net 競技プログラミング、オンラインジャッジ、プログラミングコンテストやCTFに関する雑談スレ 次スレは AtCoder https:…

  • おまえら通勤カバンに何入れてんの?w

    元スレ 1 :仕様書無しさん:2015/02/26(木) 18:41:47.23 .net 必要なもん会社のPCに入ってるし持ってる意味なくね? 見栄なの?手ぶらでいこうぜwww 308 :仕様書無しさん:2016/02…

  • プログラミングってバカでもできる?

    元スレ 1 :仕様書無しさん:2015/03/14(土) 16:03:36.23 .net おれみたいな中卒でもプログラミングって金になるほど、覚えられる? 304 :仕様書無しさん:2015/06/24(水) 23:1…

  • プログラマが本当に戦っている敵は「複雑さ」である

    元スレ 1 :仕様書無しさん:2014/03/02(日) 19:57:21.16 .net 納期でも顧客でもないよ。 そんなのどんな職業でも同じだからね。 プログラマの本当の敵とは「複雑さ」だよ。 ・プログラマにとっての…

  • teratailもりあがっtail? 12問目

    元スレ 1 :仕様書無しさん:2018/06/15(金) 14:09:24.82 .net teratail http://teratail.com/ 前スレ teratailもりあがっtail? 11問目 https:…

  • 【偽装請負】SEから人売りに転身【多重派遣】

    元スレ 1 :仕様書無しさん:2016/11/16(水) 18:46:04.35 .net 俺がSEを辞めて人売りをやってる理由 ・SEは結婚障害者だから家族に迷惑かかる ・人売りは大儲けだから家族に奉仕できる ・SEを…

  • JavaScriptプログラマーだけど何か質問ある?

    元スレ 1 :仕様書無しさん:2010/06/02(水) 05:02:54 .net Oracleも詳しいよ。 178 :仕様書無しさん:2013/05/09(木) 00:22:30.99 .net プログラマかっけーす…

  • SEなんて職業は海外には存在しない。不要な職業だ

    元スレ 1 :仕様書無しさん:2012/12/09(日) 15:03:28.16 .net ゴミ 8 :仕様書無しさん:2012/12/09(日) 16:00:37.77 .net >>7 日本のSEやPGの…

  • teratailもりあがっtail? 77問目

    元スレ 1 :仕様書無しさん:2021/08/14(土) 08:01:12.60 .net teratail http://teratail.com/ 前スレ teratailもりあがっtail? 76問目 https:…

  • プログラマの雑談部屋 ★156

    元スレ 1 :仕様書無しさん:2021/08/23(月) 02:18:54.62 .net 前スレ プログラマの雑談部屋 ★150 https://medaka.5ch.net/test/read.cgi/prog/16…

  • プログラマで高年収になる方法

    元スレ 1 :仕様書無しさん:2019/12/02(月) 13:43:39.17 .net 教えろ 5 :仕様書無しさん:2019/12/03(火) 00:35:01 .net >>3 なんで半減するんだ? …

最近のコメント

匿名 : 【いちゃ部屋】株式会社SHIFT【5ch出張所】
 新入社員はわかいそう、 在宅勤務でe-ラニングうけとけ、 ... (6/18)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫や (5/28)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫か (5/07)
ページTOPへ↑