タグ

*programとjvmに関するsh19910711のブックマーク (7)

  • Kotlinで可逆圧縮アルゴリズムを使う(gzip、Brotli、Zstd、LZ4) - ASKUL Engineering BLOG

    はじめまして。アスクルのたかせです。 BtoB領域の商品情報の管理を担うシステムを担当しています。 今回は、Kotlin(Spring Boot)環境で動作する代表的な可逆圧縮アルゴリズム(gzip、Brotli、Zstd、LZ4)の実装や特徴比較、ベンチマークをまとめました。 可逆圧縮処理が必要になった背景 アスクルのBtoB領域の商品情報管理のAPIでは、DB負荷やコストを考慮してキャッシュの導入を進めています。 しかし、キャッシュの利用が増えてきたことで、ネットワーク帯域不足の問題が発生したため、キャッシュに保存するデータの圧縮を実装する運びになりました。 可逆圧縮アルゴリズムの選定基準 可逆圧縮アルゴリズムを選定する上で比較する要素は次になるかと思います。 圧縮率: どの程度サイズを削減できるか 圧縮速度: エンコード処理の高速性 展開速度: デコード処理の高速性 メモリ使用量:

    Kotlinで可逆圧縮アルゴリズムを使う(gzip、Brotli、Zstd、LZ4) - ASKUL Engineering BLOG
    sh19910711
    sh19910711 2025/09/28
    "先発のgzipに対して、Brotliは事前辞書を活用したテキスト向け最適化、Zstdは圧縮率と速度のバランスを強み / LZ4は圧縮率より低レイテンシを最重視した設計で、リアルタイム性の高い場面で活躍"
  • フレーキーテストをCIで検知・アラートさせる仕組みを作った話(JUnit, Vitest) - Sansan Tech Blog

    明けましておめでとうございます。 2024年は皆さんにとってどんな年だったでしょうか。 私たちSansanでは、社移転により業務環境が大きく変わり、特に印象的な年になりました。 2025年も、より素晴らしい年になるように頑張りたいですね。 こんにちは。技術部 Contract One Dev の川崎です。 現場の習慣を変える、契約データベース「Contract One」の開発業務を担当しています。 フレーキーテストをご存知でしょうか。 JetBrains社の記事にフレーキーなテストとは以下と定義すると記載があります。 *1Flaky なテストは、コードまたはテストそのものに変更がないにもかかわらず、合格と不合格の両方を返すテストであると定義されています。 つまりざっくり言うと、実行の度に成功したり失敗したりするテストのことを指してるわけですね。 Contract Oneにおいてもテスト

    フレーキーテストをCIで検知・アラートさせる仕組みを作った話(JUnit, Vitest) - Sansan Tech Blog
    sh19910711
    sh19910711 2025/07/09
    "実行の度に成功したり失敗したりするテスト / vitestのグローバル設定でaftereachの際に該当テストが「リトライしたかどうか」また「成功・失敗したかどうか」を取得"
  • jlink によるカスタムJREイメージ - A Memorandum

    はじめに Hello World アプリの準備 Hello World アプリのコンパイルと実行 jlink でカスタムJREを生成する モジュールイメージ ランチャーを生成 Gradle からイメージを作成 jlink-gradle プラグイン まとめ はじめに Java Platform Module System (JPMS) に合わせて導入された jlink。 jlink により、必要なモジュールに絞ったアプリケーションの配布イメージを簡単に作成することができます。 ここでは、コマンドラインから jlink を操作することから初め、Gradle によるイメージ作成方法までを説明します。 Hello World アプリの準備 最初にコマンドラインから jlink コマンドを操作することで、イメージ作成の流れを見てみましょう。 簡単なソースを準備します。 $ mkdir jlink $

    jlink によるカスタムJREイメージ - A Memorandum
    sh19910711
    sh19910711 2025/07/09
    2023 / "必要なモジュールに絞ったアプリケーションの配布イメージを簡単に作成 / 依存するモジュールが含まれており、bin にある java コマンドでアプリケーションを単独で実行"
  • kapt上でのコード生成をテストするkompile-testingのご紹介 - スタディサプリ Product Team Blog

    @hotchemiです。みなさんは、やっていますか? 今回は、業務とは関係ない趣味で作ったkompile-testingの話をします。 概要 Googleが開発しているcompile-testingというツールがあります。これは、Javaのコンパイル及びAnnotation Processingというコンパイル時にAnnotationのメタ情報を元にコードやファイル生成をする仕組みをテストする為のライブラリで、Daggerなどポピュラーなライブラリのテストに利用されています。以下の用に書く事でコンパイル後の状態をテストする事ができます。 Compilation compilation = javac() .withProcessors(new MyAnnotationProcessor()) .compile(JavaFileObjects.forResource("HelloWorld.

    kapt上でのコード生成をテストするkompile-testingのご紹介 - スタディサプリ Product Team Blog
    sh19910711
    sh19910711 2025/07/09
    2019 / "compile-testing: コンパイル時にAnnotationのメタ情報を元にコードやファイル生成をする仕組みをテストする為のライブラリ + Daggerなどポピュラーなライブラリのテストに利用"
  • Kotlin でコレクションの型を変えるだけでパフォーマンスが100倍以上早くなった話 - Money Forward Developers Blog

    はじめまして!マネーフォワード関西開発拠点にて主にバックエンド領域を開発しているsugoikondoと申します。 普段は大阪でサーバーサイド Kotlin をメインで書くお仕事をしております。 今回のお話は、私が担当しているプロダクト「マネーフォワード クラウド連結会計」(以下、クラウド連結会計)のとある機能において、コレクション型を少し変えただけでパフォーマンスが100倍以上と大きく改善した話を紹介します。 改善した機能と元々の実装について 今回の改善対象は、クラウド連結会計における基礎的な機能である、「各種帳票のインポート機能」 1です。 取り込める帳票はいくつありますが、今回の取込対象となった帳票は行数にして数万行 ~ 数百万行程度とややデータ量が多くなるものでした。 その取込処理は、以下のような流れで行われています。 ファイルの各行を Flow に出力していく その Flow に対

    Kotlin でコレクションの型を変えるだけでパフォーマンスが100倍以上早くなった話 - Money Forward Developers Blog
    sh19910711
    sh19910711 2025/07/08
    "取込対象となった帳票は行数にして数万行 ~ 数百万行程度 / Flow とはコルーチンの一種であり、Kotlin におけるコールドストリームの実装 + 要素が要求されるまで値を生成しない"
  • CheerpJを使ってjavacとjavapをブラウザだけで動かす - xuwei-k's blog

    以前書いたこれと同じようなもの xuwei-k.hatenablog.com Scala Compilerはやり方が悪いのかなぜか動かなかったが、8のjavacやjavapは、tools.jarをそのまま呼べばなんとブラウザでも呼べた、すごい最高便利。 今度はちゃんとソースコードもgithubにおいて自動デプロイも設定しました。 これ、おそらくjavacでcompileしたものを動的にブラウザ内部でclassファイルをloadして直接実行することも可能な気がしているので、気が向いたらそれも作りたい。 https://xuwei-k.github.io/javap-web/ https://github.com/xuwei-k/javap-web cheerpj.com

    CheerpJを使ってjavacとjavapをブラウザだけで動かす - xuwei-k's blog
    sh19910711
    sh19910711 2025/07/06
    "Scala Compilerはやり方が悪いのかなぜか動かなかったが、8のjavacやjavapは、tools.jarをそのまま呼べばなんとブラウザでも呼べた / ブラウザ内部でclassファイルをloadして直接実行することも可能な気がしている"
  • Kotest を使って 快適にテストを書こう - KotlinFest 2024

    kotest は、 Kotlin ネイティブなテストフレームワークで、Kotlin で書かれたコードをテストするための強力で便利な機能が多く含まれています。 Kotlin/JVM では、テストに JUnit を使っている方が多いと思いますが、アサーションライブラリが Java しか考えていなかったり、coroutines, 非同期処理への対応が弱かったりと、もっと Kotlin の機能を最大限に活用して快適にテストを書きたいと思われる場面も多い事でしょう。 kotest は、アサーションライブラリだけを JUnit と組み合わせて使うこともできるし、テストフレームワーク全体を kotest へ置き換えることも可能です。 このセッションでは、主に今 JUnit を使ってテストを書いている方を対象に、kotest へ移行するとどんな良いことがあるのか、移行のやり方や具体的な実例を紹介します。

    Kotest を使って 快適にテストを書こう - KotlinFest 2024
    sh19910711
    sh19910711 2025/07/05
    2024 / "Kotest: Kotlin nativeなテストライブラリ + ScalaTestの影響を強く受けている + 必要な機能だけを導入できる / 型が前提の強力なAssertion Library / eventuallyを使うと、一定時間の間に成功するか判断"
  • 1