メッセージ。 - 具体的なこともしてますょ!
# 具体的なこともしてますょ!
抽象的で情緒的な日記ばっかり書いてたらいかんなーと思い中。
だって、毎日まいにちそんなのばかり読んだり書いたりしてたら、頭おかしくなるよ。
それになんか、あざといし。
つーことで、具体的な何かを出したくて一応手は動かしているんだけど、
なかなかうまくいかないっすねー。
たとえばいまは、
(time (let loop ((count 6502) (out '()))
(if (= count 0)
(reverse out)
(loop (- count 1) (cons count out)))))
というコードをZaurusで動かして、「なんで0.1秒もかかるんやろ?」とか
悩んでいます。「(cons count out)」の部分を「out」にすれば、
0.05秒で実行できちゃうのです。
やりたいことは、Wikiページレンダリングの高速化。
レスポンスタイムを0.5秒以下にしたいんですけどねー。
consって案外重いんやろか……。consするときのメモリアロケート(メモリアロケートしてるとして)が重いとか?
うーんうーん。まーそんな日々ですねー。
だって、毎日まいにちそんなのばかり読んだり書いたりしてたら、頭おかしくなるよ。
それになんか、あざといし。
つーことで、具体的な何かを出したくて一応手は動かしているんだけど、
なかなかうまくいかないっすねー。
たとえばいまは、
(time (let loop ((count 6502) (out '()))
(if (= count 0)
(reverse out)
(loop (- count 1) (cons count out)))))
というコードをZaurusで動かして、「なんで0.1秒もかかるんやろ?」とか
悩んでいます。「(cons count out)」の部分を「out」にすれば、
0.05秒で実行できちゃうのです。
やりたいことは、Wikiページレンダリングの高速化。
レスポンスタイムを0.5秒以下にしたいんですけどねー。
consって案外重いんやろか……。consするときのメモリアロケート(メモリアロケートしてるとして)が重いとか?
うーんうーん。まーそんな日々ですねー。
Comment
#
試しにreverseをreverse!にしたらどうなりますか。
#
アロケート自体は速いけどGCに時間がかかるというのは、イメージに近かったみたいでうれしいです。なるほどそうなんですねー。
なお、reverseをreverse!に変えてみたら、0.01秒で実行できました!
実際にはconsが重かったというより、reverseでメモリを食っていたということでしょうか。(というか、ソースを読めという話ですが)
面白いですねぇ。
Trackback