多くの人が正当な理由で行う「ベストプラクティス」と、多くの人が怠laで無知であるために行う「一般的なプラクティス」には違いがあります。
正常に動作し続けるために定期的に再起動または再起動する必要があるアプリケーションおよび(さらに悪い)サーバーは、かなり一般的です。ただし、重大なバグがあることも明確に示されています。
定期的にアプリケーションを再起動することをSOPにすることで、あなたの会社は重大なバグをカーペットの下に隠しています。これは言い訳になりません。バグを裏返しにして潰す必要があります。さもないと、後でバグが発生します。
理想的には、より良い開発者を見つける必要があります。残念ながら、これはコードの大部分を書き直すためにかなり多くの作業につながる可能性があります。開発者が不十分なコードの記述は許容できると考えるか、バグのあるコードの症状を認識するのに十分な知識がないという事実は、コードの品質が低いことを示唆しています。優れた開発者は憲法上、その状態のままにすることはできません。
あなたが開発者に取って代わる立場にないかもしれないことを考えると、いくつかの提案:
- より優れた開発者にコードをレビューしてもらい、その評価を報告できる人に報告してもらうことができるかどうか、
- プロファイリングツールをご覧ください。スキルや傾向がある場合は、自分でコードをプロファイリングしてリークを見つけて報告してください。
開発者向けのプロファイリングツールを使用しなくても、Javaアプリケーションのメモリ使用量をプロファイリングおよび監視するための多くのsysadmin指向のツールがあります。どのような場合でも、実際に運用サーバーでメモリ(特にヒープ)の監視を設定する必要があります。品質の高いコードを実行している場合でも、これをお勧めします。バグのあるアプリが倒れそうになると、事前の警告が表示される場合があります。
しかし、さらに良いことに、これらはリークがあるという証拠を収集するのに役立ち、アプリケーションのどこに問題があるのかを示すことさえできます。これにより、修正するためのロビーへの弾薬が改善されます。