アプリケーションのJavaアプリケーションのパフォーマンスの乾燥を解きます


Javaの研究ノートをご瑞コアコースは、我々は専門的な知識のコードの多くは、あなたの参照を共有することを学ぶことがわかります。

場合あなたがいるのJava 開発者は、アプリケーションのパフォーマンスを維持するためにいくつかのヒントを聞く必要があるかもしれません。

解決には、パフォーマンス上の開発者が少ない重点として(常に名誉には例外があります)なぜ、NFR関連する問題(特にアプリケーション・パフォーマンス)時、私はいつも疑問に思いました。これは、それの理解が不足しているためでしょうか?

多くの場合、我々は、展開の前にパフォーマンステストの時だけであるか、パフォーマンスについて考え始めます。

私たちの携帯電話:スピード(速度)とボリューム(サイズ)を増加私たちの日常生活に影響を与えている 4Gに2G、およびハードドライブ40〜80 GBが贅沢にするために使用し、USBハードドライブは、今TBに達しました。

アプリケーションのパフォーマンスの重要性

任意のアプリケーションのために我々は、これらの特性を提供しなければならないこと。

1. 適切に機能します。

2. 出演

3. 外観:それは合理的な構造、読みやすい、再利用可能なコードを持っており、最新のフレームワーク、ライブラリ、およびツールを使用する必要があります。

 

4. テスト範囲:機能は、アプリケーションのカバーはすべての意図した機能を検証するテストツールを渡す必要があります。

私は、私たちの多くは、性能に合わせてアプリケーションを提供して持っていることを見てきました。なぜ、私は二位それでパフォーマンスをしたいですか?のは、例を見てみましょう:従業員として、

・  I毎朝 8 のオフィスに時30 昼食分、15 作品分お茶の時間、9 時間、その後、午後に5 点の周りのオフィス(正しい関数)のうち、

・  ・私は、厳密にすべてのオフィスマナーを遵守、常に(外観)私の机はいつもきれいで、作業服のために服を着て、坊主

・  ・私の日々のトラベルカード、システムログインと監督(テストカバレッジ)償却とマネージャーは私のオフィスの出席を確認することができます。

今、私は2日間の作業を完了するために10日かかる場合、どのように行うには?意味することに私はよくありませんよ。 私が不振ならば、私の組織では、私は彼らのために動作するようになりますか? 

観察

すべての努力のための右のコード配信機能の完全な尊重を開発者のために、私はいくつかの見解を共有しています。

不適切な使用スレッド

各反復のために、スレッドを生成し、プログラムは、スレッドの最後まで行動のように配列全体をお待ちしております

その代わりに、ループ内で満たされる必要があるのRunnable /呼び出し可能リスト、およびその後すぐに、すべてのスレッドを呼び出すために、並列処理を使用します。

プライマリデータを取得するために、サイクルデータベースを呼び出し、循環収集静的な静的な価値創造

海外旅行の時は、新しいパスポートと同じのために適用されているようなものです。アプリケーションの起動時に、キャッシュのみをロードし、すべてのマスターデータ、定数と設定フィールド一度、アプリケーション全体でそれらを使用しています。

このようなループ内のオブジェクトの作成などの日付フォーマット

たびの利点は何新しいオブジェクトを作成するためのフォーマットサイクル「DDMMYYYY」のような?定数、および使用済みのどこかを定義します。Javaの8は、いくつかの定義済み定数を持っていてDateTimeFormatterクラスを持っています。

ループのみの目的を記録し、タイムスタンプオブジェクトを作成することを目指して

在循环中创建一个新的TimeStamp对象,仅用于记录当前日期时间。 不是所有当前的日志框架都支持模式来记录类,方法,日期时间等吗? 请使用日志框架的那些功能。

诸如响应之类的网络连接对象未关闭

随着网络请求数量的增加,网络将成为瓶颈,并且由于打开的网络连接数量而导致网络性能下降。每当网络任务完成时,请关闭连接。

正如我们在现实生活中所说的,每一分钱都很重要。不要使用诸如String.valueof(int)之类的方法,该方法反过来调用Integer.toString(int),您将通过使用Integer.toString(int)保存一个方法调用。

结论

的确,要使应用程序正常运行,必须考虑当前和将来的NFR,仔细设计其架构(高低)。

但是,作为开发人员,我们在某些领域可以肯定地应用优化,这将有益于整体应用程序性能。我们正在朝着基于云的体系结构迈进,在这种体系结构中,每次使用资源都会产生成本,因此请记住,没有什么是免费的。


提供功能时,请问自己,我可以进一步优化此代码吗?


> 喜欢这篇文章的可以点个赞,欢迎大家留言评论,记得关注我,每天持续更新技术干货、职场趣事、海量面试资料等等

 > 如果你对java技术很感兴趣也可以交流学习,共同学习进步。 

> 不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代


文章写道这里,欢迎完善交流。最后奉上近期整理出来的一套完整的java架构思维导图,分享给大家对照知识点参考学习。有更多JVM、Mysql、Tomcat、Spring Boot、Spring Cloud、Zookeeper、Kafka、RabbitMQ、RockerMQ、Redis、ELK、Git等Java干货



 微信图片_20200227100004.png微信图片_20200225115155.png


おすすめ

転載: blog.51cto.com/14634606/2485571