标签: linux

Linux下的Java虚拟内存使用情况,使用的内存过多

我在Linux下运行的Java应用程序有问题.

当我使用默认的最大堆大小(64 MB)启动应用程序时,我看到使用tops应用程序为应用程序分配了240 MB的虚拟内存.这会在计算机上创建一些其他软件的问题,这些软件相对资源有限.

据我所知,无论如何都不会使用保留的虚拟内存,因为一旦达到堆限制OutOfMemoryError就会被抛出.我在Windows下运行相同的应用程序,我发现虚拟内存大小和堆大小相似.

无论如何我可以在Linux下配置用于Java进程的虚拟内存吗?

编辑1:问题不在于堆.问题是,如果我设置一个128 MB的堆,那么Linux仍然会分配210 MB的虚拟内存,这是不需要的.**

编辑2:使用ulimit -v允许限制虚拟内存量.如果大小设置低于204 MB,则应用程序将不会运行,即使它不需要204 MB,只需64 MB.所以我想了解为什么Java需要这么多虚拟内存.这可以改变吗?

编辑3:系统中运行了几个其他应用程序,它们是嵌入式的.系统确实有虚拟内存限制(来自评论,重要细节).

java linux memory virtual-memory

246
推荐指数
5
解决办法
23万
查看次数

Linux中的线程与进程

我最近听过一些人说在Linux中,使用进程而不是线程几乎总是更好,因为Linux在处理进程方面非常有效,并且因为线程有很多问题(例如锁定).但是,我很怀疑,因为在某些情况下,线程似乎可以带来相当大的性能提升.

所以我的问题是,当遇到线程和进程都能很好地处理的情况时,我应该使用进程还是线程?例如,如果我正在编写Web服务器,我应该使用进程或线程(或组合)吗?

linux performance multithreading process

244
推荐指数
9
解决办法
11万
查看次数

如何使用bash脚本替换文件名中的空格

任何人都可以推荐一个安全的解决方案,从给定的根目录开始递归地用文件和目录名称中的下划线替换空格?例如:

$ tree
.
|-- a dir
|   `-- file with spaces.txt
`-- b dir
    |-- another file with spaces.txt
    `-- yet another file with spaces.pdf
Run Code Online (Sandbox Code Playgroud)

变为:

$ tree
.
|-- a_dir
|   `-- file_with_spaces.txt
`-- b_dir
    |-- another_file_with_spaces.txt
    `-- yet_another_file_with_spaces.pdf
Run Code Online (Sandbox Code Playgroud)

linux bash filenames whitespace

244
推荐指数
8
解决办法
23万
查看次数

在Ubuntu中创建目录的符号链接

下面是我创建目录符号链接的代码:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Run Code Online (Sandbox Code Playgroud)

我已经创建了目录/etc/nginx.我只是希望源目录(/usr/local/nginx/conf/)的内容位于目标目录(/etc/nginx)的内容中.但是当我执行代码时,/etc/nginx包含一个名为的目录conf,而不是内容conf.该目录包含我想要的内容,但位置错误.

为什么它将目录放在目标文件夹中,而不是仅仅将目录的内容放在目标文件夹中?

linux terminal symlink

244
推荐指数
3
解决办法
44万
查看次数

如何只用linux`get`获取文件名?

我正在使用find到目录中的所有文件,所以我得到了一个路径列表.但是,我只需要文件名.即我得到了./dir1/dir2/file.txt,我想得到file.txt

linux shell find

243
推荐指数
7
解决办法
25万
查看次数

突出显示类似于grep的文本,但不过滤掉文本

使用grep时,它会突出显示与正则表达式匹配的行中的任何文本.

如果我想要这种行为怎么办,但grep打印出所有行?通过grep手册页快速浏览后,我空了.

linux grep command-line-interface

243
推荐指数
5
解决办法
11万
查看次数

如何在Ubuntu上设置GOPATH环境变量?我必须编辑哪个文件?

我想做一个go get:

go get github.com/go-sql-driver/mysql
Run Code Online (Sandbox Code Playgroud)

它失败并出现以下错误:

package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
Run Code Online (Sandbox Code Playgroud)

当我这样做时go env,Go值列表如下所示:

ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

显然没有设置GOPATH,我如何设置它?

我看到许多线程提到了这个错误,但没有提供我的问题的答案,需要编辑哪个文件以提供此路径的值?

linux ubuntu go

243
推荐指数
11
解决办法
33万
查看次数

使用命令行在Linux中将xlsx转换为csv

我正在寻找一种方法将xlsx文件转换为Linux上的csv文件.

我不想使用PHP/Perl或类似的东西,因为我正在寻找处理数百万行,所以我需要一些快速的东西.我在Ubuntu repos上找到了一个名为xls2csv的程序,但它只会转换xls(Office 2003)文件(我目前正在使用),但我需要支持更新的Excel文件.

有任何想法吗?

linux csv excel converter xlsx

242
推荐指数
10
解决办法
22万
查看次数

有没有办法让mv创建要移动的目录,如果它不存在?

所以,如果我在我的主目录中并且我想将foo.c移动到〜/ bar/baz/foo.c,但那些目录不存在,是否有某种方法可以自动创建这些目录,以便你只需输入

mv foo.c ~/bar/baz/ 
Run Code Online (Sandbox Code Playgroud)

一切都会成功吗?看起来你可以将mv改为一个简单的bash脚本,它会检查这些目录是否存在,如果不存在则会调用mkdir然后调用mv,但我想我会检查是否有人有更好的想法.

unix linux macos mv mkdir

241
推荐指数
9
解决办法
17万
查看次数

如何在Python中获取Linux控制台窗口宽度

有没有办法在python中以编程方式确定控制台的宽度?我的意思是在没有包装的情况下适合一行的字符数,而不是窗口的像素宽度.

编辑

寻找适用于Linux的解决方案

python linux terminal console width

241
推荐指数
9
解决办法
10万
查看次数