最近学习scala,在用sbt(Simple Build Tool,scala的构建工具)时,隔断时间会抛出“java.lang.OutOfMemoryError: PermGen space”这个异常,重启之后就好了,今天终于仍受不了了。
在问了google后,其解决方案比较直观,和增大jvm的内存大小的方法类似,增加些启动参数即可:
- 在哪里设置?
$ cat `which sbt`
其内容类似于下面的输出
#!/bin/sh
test -f ~/.sbtconfig && . ~/.sbtconfig
exec java -Xmx512M ${SBT_OPTS} -jar /usr/local/Cellar/sbt/0.13.0/libexec/sbt-launch.jar "$@"
可以看到sbt的配置默认在~/.sbtconfig文件中设置
- 设置选项
SBT_OPTS="-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:PermSize=256M -XX:MaxPermSize=512M"
但是,为什么会出现这个问题呢?以及配置中的选项都是什么含义?
- PermGen是什么?(参见https://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation)
PermGen(Permanent Generation),主要用来存放Java Classes的内部表示。联系到sbt的问题上,是scala在动态运行时会生成class(closure会生成单独的class?),所以在运行一段时间后会出现PermGen不够的情况,重启后又ok了。
- CMSClassUnloadingEnabled参数什么意思?
默认情况下GC是不回收PermGen的空间的(其名字也能反映这点),这个选项就是启用清除PermGen的功能,删除不用的classes。但是需要和UseConcMarkSweepGC参数使用。
相关推荐
针对SparkR安装出现的Invalid or corrupt jarfile sbt/sbt-launch-0.13.5.jar替代
在oschina镜像不能用之后,现在使用阿里云作为镜像,通过该jar包能够快速地安装sbt。
报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.-附件资源
在Unix或类Unix系统中,用户可以通过执行`./sbt`命令来启动sbt,而在Windows环境下,可能需要通过`sbt.bat`或双击执行。 总之,sbt-1.3.8是Scala开发不可或缺的一部分,它提供了高效、灵活的构建解决方案,且易于...
标题 "sbt-0.13.15.tar.gz.7z" 提供的信息表明,这是一个包含 sbt(Scala Build Tool)版本 0.13.15 的压缩文件,它使用了两种压缩格式:首先将文件打包为 .tar.gz,然后用 7-Zip 压缩为 .7z 文件。这种双重压缩可以...
SBT,全称为Scala Build Tool,是用于构建和管理Scala及Java项目的强大工具。它以其高效、灵活和可扩展性而受到开发者的广泛欢迎。在本文中,我们将深入探讨SBT的基本概念、功能以及如何使用它来管理项目。 首先,...
sbt-jacoco, 在sbt中,JaCoCo代码覆盖插件 sbt JaCoCo - sbt中通过JaCoCo的代码覆盖率 这是一个 sbt插件插件,用于通过 JaCoCo 进行代码覆盖率分析。通过将以下内容添加到 project/plugins.sbt 来安装插件:ad
SBT(Simple Build Tool)是Scala项目的主要构建工具,它为Scala和Java项目提供了高效、灵活的构建方式。版本0.13.15是SBT的一个重要里程碑,尽管后续版本已经更新到1.x系列,但0.13.x系列在很多旧项目中仍然广泛...
sbt是基于Apache 2.0许可的开源工具,它为开发人员提供了高度可定制的构建流程,使其能够高效地管理依赖、编译、测试以及发布Scala和Java应用。 ### sbt核心特性 1. **动态项目构建**:sbt采用增量构建策略,只...
总的来说,"前端项目-sbt.zip"提供了一个方便的工具集,帮助前端开发者快速构建具备社交功能的应用,并通过SBT进行高效的项目管理和构建流程。这不仅提升了开发效率,还确保了代码的可维护性和扩展性。对于想要在Web...
SBT,全称为Scala Build Tool,是用于构建和管理Scala及Java项目的工具。它是一个强大的构建系统,由Hudson和Maven的开发者Jason van Zyl所创建,旨在为Scala项目提供更加灵活和高效的构建解决方案。SBT利用Scala...
SBT,全称为Scala Build Tool,是用于构建Scala和Java项目的强大工具。它以其灵活性、高效性和自动化特性在开发社区中备受青睐。sbt-0.13.16.zip是一个包含SBT 0.13.16版本的压缩包,可能是为了方便开发者在官网下载...
SBT是基于Java平台的一个开源构建工具,它为Scala和Java项目提供了高度可配置的、功能强大的构建机制。这个版本是截止描述时的较新版本,对于开发者来说,能够快速地获取到这样的安装包是非常有益的,尤其是在sbt...
SBT,全称为Scala Build Tool,是用于构建Scala和Java项目的工具,同样也适用于管理Java项目。它基于Apache Ivy库,提供了高效的依赖管理和构建流程。Sbt 1.0.3是该工具的一个版本,发布于2017年,为开发者提供了...
**SBT(Scala Build Tool)** 是一个强大的构建工具,主要应用于Scala项目,但也可用于Java项目。在标题“sbt-0.13.7 3”中,提到的版本号0.13.7是指SBT的一个特定发行版,而数字3可能是对这个发行版的某个更新或...
标题中的"PyPI 官网下载 | sbt-python-client-1.0.1.tar.gz"表明这是一个在Python的包管理平台PyPI上发布的开源软件包,名为`sbt-python-client`,版本为1.0.1,且以tar.gz格式提供。PyPI(Python Package Index)是...
修改了sbt内默认配置连接的国外镜像资源, 换到了阿里云提供的一个资源库, 速度超级快, 谁用谁知道.
SBT管道Playframework.g8 该项目包含一个SBT模板,其中包含所有项目的管道模板。 该模板的主要目标是: 标准化项目 加快开发速度,使开发人员远离繁琐的配置 配置管道所需的工具 如何使用 使用此模板需要执行以下...
**Sbt资源包详解——全平台版本Sbt-Platform** Sbt(Simple Build Tool)是Scala项目的主要构建工具,它以其高效、灵活和强大的特性深受开发者喜爱。在 Scala 开发环境中,Sbt 起到了核心作用,它负责编译、测试、...
总的来说,斯巴拓SBT904QA手持操作说明书为用户提供了一套全面的指南,涵盖了设备的技术细节、安装步骤、操作方法和参数设置,确保用户能够充分利用这款传感器变送器,实现精确的力测量和数据传输。在实际应用中,...