こういう記事を読んだ。 transparent-to-radiation.blogspot.com なんかScalaのメモリ使用量が異常に多いなと思って、調べた。検証コードもアップした。 github.com 検証として、様々なJVM(OpenJDKとかCorettoとか)とそのバージョン(8, 11, 17)でJARを実行して考察した。JVMを用意するためにASDFを使った。また、ASDFから引っぱってこれないJVMのバージョン(OpenJDKの8など)は省略している。 JAVA_OPTSは-Xms100M -Xmx2Gである。 手元のマシン(Linux x86_64 Xeon W-10855M 2.80GHz 64GiB RAM)でのrun-matrix.shの実行結果は、以下の通り(各列は、JVM、計算件数、実行時間Sec、メモリ総使用量KiB)。 openjdk-11 openjd
こんにちは、Red Hat Middleware Technical Account Manager のイアンです。 お客様のサポートケースの対応では、現象を再現させるために稼働しているJavaアプリケーションのコードを修正/パッチする場合があります。そのときには、Bytemanをよく使っていますが、新しいツールを紹介したいと思います。 Java Runtime (De)compiler (以降JRDとして略)は弊社社員が作って提供しているJavaのデコンパイルと修正したコードをアプリケーションへ挿入するためのツールです1。最新バージョン 7.2 は Java 11 以降に対応していますが、古いバージョン 6 は Java 8 でも使えるように見えます(未検証ですが)。 簡単な例で使い方を説明いたします。 環境準備 この例では、以下の製品とソフトウェアを使用します。 OpenJDK 11
【 デジスマチーム ブログリレー1日目】 こんにちは。 デジスマチームの山本です。 クリニック向けDXサービスであるデジスマ診療のWeb フロントエンド・バックエンド・インフラを担当しています。 今回は先日AWSから発表されたaws-advanced-jdbc-wrapperについて紹介します。 はじめに AWS Advanced JDBC Wrapper 提供Plugin フェイルオーバーとは これまでのフェイルオーバー対策 AWS Advanced JDBC Wrapperを利用した場合のフェイルオーバー対策 Failover Connection Plugin Host Monitoring Connection Plugin 導入方法 Gradle(Kotlin)での依存先の追加 Spring Boot + HikariCPでの設定例 実際に動かしてみた 何も設定しない場合 設定後
フリーランスITエンジニアの案件数が多い言語、1位Java、2位JavaScript、3位PHPなど。Go言語は人材不足。レバテックフリーランス調べ ITエンジニア向けの転職や求人などの支援サービスをに提供するレバテックは、フリーランスのITエンジニア向けに案件紹介などを手がける「レバテックフリーランス」に蓄積された2万件以上のフリーランス案件のデータを元に、プログラミング言語別の案件数や月単価のランキングを発表しました。 集計期間は2021年10月から2022年10月までの1年間です。 発表によると、フリーランスのITエンジニア向けに案件数が多いプログラミング言語の1位はJavaで5564件、次いで2位がJavaScriptで3902件、3位がPHPで2836件となっています。 1位のJavaは、Webアプリケーションやゲームなどの開発に用いられることは比較的少なく、主に業務アプリケーシ
オラクル、JavaやJavaScript、Ruby、Pythonなど多言語対応を単一ランタイムで実現する「GraalVM」をオープンソースで公開。Twitterが本番環境で採用 JavaやJavaScriptなどには、それぞれその言語を実行するためのランタイムが存在します。JavaならJavaVM、JavaScriptならJavaScriptエンジンといった具合です。 米オラクルがオープンソースで公開した「GraalVM」は、これまで言語ごとに個別に用意されていたランタイムを統合し、単一の高性能なVMにするという同社の研究の結果開発された汎用仮想マシンあるいは汎用ランタイムです(米オラクルのブログ、日本語訳)。 GraalVMのWebサイトには、次のような説明が記されています。 GraalVM is a universal virtual machine for running appli
対象読者 Java関連に携わる開発者 これからJavaを学ぼうと思っている方 既存のライブラリ資産を利用する場合 Javaにはこれまで蓄積されたライブラリも多く、特にオープンソースライブラリを使わない選択をするのは、多くのプロジェクトで難しいと言わざるを得ません。そしてJava 9へのバージョンアップ後も、それらのライブラリをそのまま使う必要があるケースが多々あります。 しかし、Java 9がモジュールに対応したことに合わせて、既存の全ての資産をモジュール対応させてリリースし直すのは、現時点では難しいことでしょう。 Java 9のモジュール機能とモジュール対応されていないライブラリを同時に利用することは可能です。しかし、そのためにはいくつかの注意点があり、Java 9がモジュールをどのように扱っているのか、理解する必要があります。 Java 9におけるモジュールの扱い Java 9のモジュ
The document discusses Spring configuration and Java-based configuration. It covers topics like using @Configuration classes to define beans, @ComponentScan to find beans, @Bean to define beans, and using Java configuration as an alternative to XML configuration in Spring. It also provides examples of configuring ViewResolvers, controllers and enabling Spring MVC features with annotations like @En
Java SE 9を、新たに導入されたモジュール・システム(Jigsaw)を中心として紹介します。JJUG CCC 2017 Fallの発表資料です。 補足: p. 7 正しくは「JMX」→「JMS (Java Message Service)」。JMXはJava SE内の、モニタリング用の仕組みです。 p. 43 これに加えて、SPIの実装を提供するモジュールも、モジュールレイヤーに含まれます。具体的にはConfiguration.resolveAndBindの動きです。 p. 47「Oracle JDKでは、外部モジュールの非公開メンバへのリフレクションが可能」は、OpenJDKでも同じ動作です。「HotSpot系の」とすべきところでした。 このスライドはCC Attribution Licenseの元に、利用・改変・再配布をライセンスします。
Kotlin歴2ヶ月程度で勉強中なのですが、現在プロジェクトのソースコードを少しずつですがKotlinに置き換えていて、本日11/7時点でKotlin率は40%弱です。 この記事の内容は、そんな自分がKotlin置き換え始めた頃の失敗、問題点を雑に振り返り、 JavaのソースコードをKotlinに書き換える際には下記2つを行なうのが良いのではないかという提案です: 自動変換コードは常に疑う デコンパイルされたバイトコードのレビューをする 尚、内容はYahoo JAPAN!様で開催されたBonfire#2にて発表したものから抜粋しています。(発表資料はこの記事の下部にあります) Kotlin置き換え始めた頃の自分の問題点 1. 自動変換を信用しすぎていたこと Android Studioを用いたAndroidアプリケーション開発において、JavaのソースコードをKotlinに置き換える際には
JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす
「Java プラグイン機構」で検索をすると、ServiceLoader を使っていない記述が多くて 難しそうに見えるので、ServiceLoader を使う方法をまとめておきます。 主にチームメンバーへの情報共有が目的。 Java 1.7.0 update51 (Java6 以降でないと ServiceLoader が使えない) Maven 2.2.1 Eclipse 4.3.1 Kepler 実現したいこと Java でプラグイン機構を実現したい リフレクションやクラスローダは意識したくない jar ファイルをクラスパスに追加するだけで勝手にプラグインが追加される プラグインを作ってみる 各国の言葉で挨拶をする機能をプラグインとして作ります。 プロジェクトは foo-core という名前にします。 foo-core/src/main/java/foo/GreetingPlugin.jav
[速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ 米オラクルは9月21日(日本時間9月22日未明)、Javaの最新バージョンとなるJava 9正式版を公開しました。 Java 9 is Out!!!!#JDK9 #Java9 #Javahttps://t.co/VE7BI4KPlK pic.twitter.com/kOdNiLJ1ky — Java (@java) 2017年9月21日 Java 9最大の新機能は「Project Jigsaw」として開発されたJavaのモジュール化機能です。おそらくJavaの開発のなかでももっとも難産なプロジェクトだったといえるでしょう。 難産の末にProject Jigsawがついに実現 Javaをモジュール化して必要な部分だけを使えるようにする
Java の練習と分散システムの理解のために、Multi Paxos の実装をしてみてた。16 ファイルで 970 行程度で一応正常系は動くものはできたと思う。そろそろ疲れたので切り上げ。コードはださないけど、やったことをまとめ。 実装方針 この記事を何度も読んで、この通りに実装した。それに尽きる。 Understanding Paxos もちろんPaxos Made Simpleも読んだけど、実装するにあたっては上の記事がきれいにまとまってて必要十分だったので助かった。特に Multi Paxos について丁寧に説明があるのでありがたかった。 まずは Paxos を実装 Paxos は単一の値の合意をとるためのプロトコルで、まずはここを実装した。上の記事通りに、Proposer/Voter/Arbiter の 3 Role を class で実装。一応分けたけど、Peer としてはどれも
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く