66713


10年以上前のことで記憶が曖昧ですが、PCのメモリサイズはあるのにJavaのメモリが足りなくなり、調べたところJavaが使用するメモリはデフォルトで決められていることを知りました。

[JDK8(Linux 64bit)のデフォルトヒープサイズ -
n-agetsumaの日記](http://n-agetsuma.hatenablog.com/entry/2015/12/30/185405)  
たとえば上記にある通り、

> 物理メモリが248MB以下の場合 物理メモリの2分の1。
>
> 物理メモリが248MBより大きい場合 物理メモリの4分の1。

といったように。

ここで疑問に思ったのが、Kotlinを使った開発でspringが使用する最大メモリサイズも上記の規定に従うのでしょうか？  
また使用メモリサイズを大きくしたい場合、どのようにすれば増やすことができますでしょうか？（起動は `./gradlew bootRun`
でさせていますが、これになにかオプションを渡すのでしょうか？ それとも設定ファイルがありますか？）

（なんとなくKotlin関係なくJavaで書こうが同じことな気がするのでJavaで開発していた場合の回答でもかまいません）


CC BY-SA 4.0
2020-05-17T08:34:02.783
66710
2020-05-18T00:38:59.113
2020-05-17T08:39:03.413
9008
9008
question
java spring kotlin spring-boot
Kotlinを使った開発でspringが使用する最大メモリサイズについて


> ここで疑問に思ったのが、Kotlinを使った開発でspringが使用する最大メモリサイズも上記の規定に従うのでしょうか？

Spring
Boot（Java）を起動する際にJVMオプション`-Xmx`（Javaのヒープサイズの最大値を指定するオプション）を指定していなければ、参照されたページにもあるようにマシンの物理メモリなどによって最大ヒープサイズが決まります。

> また使用メモリサイズを大きくしたい場合、どのようにすれば増やすことができますでしょうか？

前述の`-Xmx`で調整できます。

> （起動は ./gradlew bootRun でさせていますが、これになにかオプションを渡すのでしょうか？

`./gradlew
bootRun`で起動しているのであれば、`build.gradle`に以下のようにJVMオプションを設定することになると思います（もしかしたら、バージョンによって違うかもしれませんが）。

[code]

    bootRun {
        jvmArgs = [
                "-Xmx2048m",
    
[/code]

私がつくったKotlin版のSpring Bootアプリの`build.gradle`が参考になるかもしれません。

<https://github.com/k-tamura/easybuggy4kt/blob/master/build.gradle>

※このアプリはJava
8でしか動作確認していません。また、意図的に脆弱性やリソースリークなどを起こすことが目的のアプリなので、実装などは参考にしないで下さい。


CC BY-SA 4.0
2020-05-17T10:40:46.170
66713
2020-05-17T10:54:18.477
2020-05-17T10:54:18.477
21092
21092
66710
answer


`build.gradle.kts`ファイルの場合は下記のようにすれば指定できました。

[code]

    tasks.withType<BootRun> {
        jvmArgs = listOf("-Xmx2048m")
    }
    
[/code]


CC BY-SA 4.0
2020-05-18T00:38:59.113
66734
2020-05-18T00:38:59.113
9008
66710
answer