スタックオーバーフロー問題が頭の中に常にある。C++でローカル変数をnewせずに宣言するとスタックと呼ばれるエリアを使うことになり、その最大サイズをオーバーするとプログラムが暴走するというもの。暴走するというのは極端でも何でもなくて、もちろんそれ以上スタックを使えなくなるし、ヒープ領域だって取れなくなる。プログラムそのもののメモリーが壊れるんだから何が起きるかわからずない。
普通に関数呼び出しを何回層も実施している分には問題ない。それが100階層だって大丈夫なくらいだけど、再帰呼出しを前提とした関数を3000回くらい行うとスタックオーバーフローが発生する。回数は例であって、関数内のスタック利用量によって変わる。ローカル変数および関数の引数をnew&deleteしてヒープを使うようにしたところで、わずかなスタック利用サイズ減少にしかならず意味なし。再帰呼出しが数千回行われちゃえばうにもならん。
なお、スタックサイズのデフォルトは1MB。メモリーが最低でも8GBある時代なんだから、1GBくらいあるんじゃねと思っちゃうけどそれはちがう。Linuxが8MBということなので、そこまで増やしても問題なさそう。。いや、WindowsとLinuxでは根っこが違うので安易に増やさないほうが身のためか。ということで、再帰呼出しする関数を改造して、関数を何度も呼び出すループ処理にするのがいいだろう。人が作ったプログラムを直すってのは骨が折れるが、でもやりがいもあるんで、ここ数日中にやっつけよう。
青森出身者との飲み。会社の同僚で、2カ月ほど前に船橋で飲んだのが最初。おいらの高校の同級生が船橋で居酒屋をやっており、そこに顔を出すというミッションがあって、一人で行くのもどうかと思って、船橋近くに自宅があるという会社の同僚を誘って飲んだ。おいらが誘ったので飲み代をおごったののお返しが、数日前の新橋飲みにつながった。青森の学校を出て東京に出てきて、社歴は30数年。同僚とは言いつつ、協力会社から出向してきていて、うちの会社の経歴だけでも20年くらいあるんじゃないかな。人当たりがいいので、いろんなメンドウなことを押し付けられやすく損している面もあるが、粘り強くコトに当たる技術者なので、それだけ長く仕事が続けられるのだろう。5年ほど前にいっしょに仕事をして、おいらがけっこう助けられたということがあり、いつか一緒に酒を飲もうと目論んでいた。青森の祭りであるねぶたにちなんだ店を予約してくれていた。青森名物の料理を食いながら、ビールやワインをしこたま飲んで、会計はおまかせした。船橋の飲みが1万円弱だったのに対して、新橋は1.2万円くらいになっただろう。若干の借りが残ったので第3回を企画する。若者2名を引き入れて、4人で会社のグチでも言って楽しもう。4人で2万円くらいの会計なら、おいらにとっちゃ小銭みたいなものなので問題なし。クソ上司とかクソプロジェクトの話は、サラリーマンの鉄板ネタ。グチばかり言っててもしょうがないから、ちょっとはテクニカルな話もすることだろう。その青森にちなんだ居酒屋で売っていた名物「スタミナ源たれ」をおみやげとしていただいた。今度の飲みでは、そのお返しをすることも忘れないようにしよう。
尾道を愛する同僚の話。もうすぐ還暦を迎えようとしている同僚が、ちょー久しぶりの有給休暇を取得して広島の尾道を旅行している。毎日遅くまで仕事をした上で、土日のいずれかは在宅で仕事しちゃうというThe社畜。イヤな仕事を延々とさせられているというわけでもなさそうで、自分だからこそできる仕事だから耐えられると言っていた。同じような残業量であっても、責任追及されたりしたり責任追及するミッションだと話はちがうとのこと。おいらだったら、そもそもそんな残業量が耐えられないと今なら思えるが、おいらのことを振り返ると5年ほど前に月の残業時間が90時間くらいになって、あやうく壊れそうになっていたことがある。がんばればできると思って取り組んでいたのがまちがいで、どんなにがんばっても成果が出ないクソ仕事。責められ役としてそこに人がいる必要があったというだけで、罠にハメられたというのが今ならわかる。1年ほどで区切りを迎えられたからそのチャンスを逃さずに、危機感を持った提言をして脱出できた。提言と言えば聞こえはいいが、ようするに退職を盾にいい条件の仕事を勝ち取ったということ。クソ上司との決別ができたし、CADのミッションはおいらがまかせられて、それ以降自由にやれるようになった。なんか、自分の話ばかりになってしまった。尾道愛のある同僚は、5月末までの社外ミッションを終えて、この6月から自社に戻ってきている。次の仕事が決まらないことをグチっていたが、いやいやそれってラッキーなことのように思える。いかに自分にしかやれない仕事であっても、連日の残業と休日勤務が続く日々をそうそう長くは続けられない。半年くらいは、社内でたらたらと仕事をやっているふりをするのもいいだろう。社員という立場はタイヘン強いのよ。仕事にヤリガイがないというのはつまらんかもしれんけど、ようは慣れなんじゃないかな。お互いいい歳なんで、仕事なんかほどほどにして、プライベートを充実させるのが吉。プログラミングが好きなら、おいらのように趣味でやるのがいいだろさ。
尾道を楽しんでます。
それは何よりです。