プログラミング

カンナムスタイルのビュー数があまりにも多すぎてYouTubeのプログラムのコードを破壊

次の記事

Steroids.jsで名を上げたAppGyverがデータベースへの容易なアクセスまで含む開発フレームワークSupersonicを立ち上げ

style

あらまあ!

これは、プログラマならぜひ覚えておくべき情報だ。PSY(サイ)のGangnam Style(カンナムスタイル)は、視られた回数があまりにも多いので、YouTubeのビューカウンタを壊してしまった。それは、32ビットインテジャーの値域をぶち破った、ホントに初めてのビデオ、という名誉を勝ち取った。

YouTubeはこの件に関してこう述べた:

psy
[一つのビデオが32ビットインテジャーの最大値(2,147,483,647)よりも多く視られるとは、考えもしませんでしたが、でもそれはPSYがまだいないころの話です。“カンナムスタイル”は、視られた回数が多すぎるので、64ビットインテジャー(9,223,372,036,854,775,808)にアップグレードしなければなりませんでした。PSYのビデオのカウンターの上をホバーすると、ちょっとした数学のマジックを見られます。YouTubeにはもっともっと大きな数が現れると思われますので、今から覚悟しておきましょう。]

でも、だからどうした?と言いたいのだけど。プログラムを書くときは、数値のようなデータをどう保存するかを、考えなければならない。32ビットインテジャーでよいのか?それとも64ビットインテジャーか? 32ビットなら使用するメモリも小さいが、−2,147,483,648から2,147,483,647までの数しか保存できない。64ビットインテジャーは大量のメモリを使うけど、−9,223,372,036,854,775,808から9,223,372,036,854,775,807までの数を保存できる。

(* ここでは話を簡単にするためにあえて、signedとunsigned(有符号整数と無符号整数)の違いを忘れたふりをしている。)

パックマン(Pac Man)のキルスクリーンをご存知だろう。プレーヤーのレベルが256を超えると、画面がめちゃくちゃになる。これも同じ問題だ。こちらは32ビットじゃなくて8ビットの数だけど。

昨日(米国時間12/2)の記念すべき事件のあと、YouTubeはコードを書き換えたので、今では最大9クウィンティリオン(quintillion)までのビューをサポートしている。安心してビデオを見よう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))