2011-12-01から1ヶ月間の記事一覧

PCの寿命

はじめに PCの寿命は何で決まるのか、というのをちょっと考えてみる。そもそもPCの買い替え寿命を感じる所というのは何かと考えると、それは「動作の重さ」というのが一番大きいと思われる。PCの機械的寿命は巷の交換頻度と比べると割と長く、また割と容易に…

とっても遅延評価なPython3

はじめに Python2.x系は関数型言語としては、遅延評価が弱かったのだが、Python3から幾らかのBuilt-in Functionが強力な遅延評価機能を導入したのでちょっと見てみる。 filter Python2までは 文字列・タプル→そのまま それ以外→リスト を返していた(つまり…

補足:unique_ptrのパフォーマンスについて

C++

unique_ptrを使ったコードと使わないコードのアセンブリをgccに吐かせてみると、-O0の場合はunique_ptrを使うコードの方は関数呼び出しが1回余計に挟まることで、クリティカルなオーバヘッドになっている。一方gccで-O2を指定してアセンブリを吐かせると、un…

C++で大規模な配列追記のパフォーマンス

C++

はじめに @__boronium による 「じゃあC++はどうなの?」 という疑問にお答えするコーナー。元のPython版はhttp://d.hatena.ne.jp/ponkotuy/20111216/1324021461 でどうぞ。ちなみにg++4.6.1 -O2 -std=c++0xでコンパイル。 はじめる前に補足 微妙に間違った…

Pythonで大規模な配列のパフォーマンス(append編)

はじめに Pythonで大規模な追記を扱う時に、どの型を使うと早いのか、パフォーマンスを調べてみる。ちなみにPythonは3.2を使用。 list まずは定番のlist型 l = [1,2,3] for i in range(10**7): l.append(i) 5.7秒、1.6GB set 早いと評判のset型 s = set([1,2…

D言語で素数列を求めるコードを書いてみた

D

ことの由来 Haskellの練習がしたくて、Sphere Online Judgeで競技プログラミング始めてみたのである。関数型言語はどっちかというと競技プログラミングの方が強そうな気がしたので。初っ端から素数の問題にぶちあたり、Haskellで素数どうやって書いたもんか…

Mercurial Advent Calendar 2011 〜自鯖で公開レポジトリ〜

はじめに 私自身は、Mercurialを使い始めてだいたい1年ぐらいになる。元々は特に理由もなくSubversionを使っていたのだが、レポジトリを自鯖で公開したいと思うと色々不満が多く、乗り換えを決意した。Gitと比較検討した結果、まぁMercurialが一番手っ取り早…

D言語を始めてみた 〜ラベルすごい〜

D

D言語にはラベルという機能がある。 空文を含めて任意の文がラベル付け可能で、 goto文の飛び先とできます。 continue 文や break 文の飛び先ともなり得ます。 …えっ continue 文や break 文の飛び先ともなり得ます。 なんだってー!?!?という訳でbreak文…

「ぐへへお姉ちゃんパンツ何色」から始めるPythonクラス解説

はじめに とりあえずこれを読みましょう。http://b0r0nji.blogspot.com/2011/12/blog-post.html Python編 さて、ほむほむのパンツをPythonで実装するとこうなります。(ぽんこつさんはお姉ちゃんキャラ嫌いなのです) class Pants(object): def __init__(sel…

桜花あどべんとかれんだぁ(3日目) 〜桜花たんのここがこわい〜

はじめに 桜花たんはツイドルである。桜花たんはかわいい。真理である。しかしぽんこつさんは別のパラダイムを提供したい。可憐な薔薇には棘がある。桜花たんはこんなにもこわいのだと。 桜花たんのここがこわい その1 〜負けず嫌い〜 Event: jubeatを一緒に…