2013-05-06 60 views
5

我所有的只是Bourne shell和busy box。 有什麼辦法來運行一個python腳本或編譯C程序或如Perl任何語言..忙碌的箱子,運行C,Python或Perl程序

busybox python eatmemory.py 100M

busybox gcc eatmemory.c

我需要的是創建一個進程這將消耗特定量的內存。並測試性能。

感謝

+1

可能的重複:http://stackoverflow.com/questions/4964799/write-a-bash-shell-script-that-c​​onsumes-a-constant-amount-of-ram-for-a-user-defi – 2013-05-06 06:18:36

+1

你有什麼系統?你在你的筆記本電腦/臺式機上安裝了Linux嗎(首先,要學習Linux,其次是交叉編譯)?您也可以考慮使用tinycc(即'tcc',它可以將C代碼快速編譯爲未優化的機器代碼)。 – 2013-05-06 06:35:48

回答

3

如果您問題是

busybox是否帶有python解釋器或C編譯器?

那麼答案是否定的。

如果

是否有寫一個腳本,將busybox下「ash外殼將只分配一些內存我跑的方式?

然後參見this答案,正如安德烈所建議的那樣。

1

一個簡單的Perl腳本:

use strict; 
use warnings; 

# store and validate the command line parameter 
my $mb = $ARGV[0]; 
unless (defined $mb and $mb =~ /^\d+$/ and $mb >= 1) { 
    die "Usage: $0 <occupy MB>\nEx: $0 100 - occupies 100 MB memory\n" 
} 
# convert it to bytes. 
my $b = $mb * 1024 * 1024; 

my $memfile; 

# open in-memory file, and seek to size specified to get memory from OS. 
open MEM, '>', \$memfile; 
seek MEM, $b - 1, 0; 
print MEM 'A'; 
close MEM; 
printf "$mb MB memory is occupied, press ENTER to release: "; <STDIN>; 

# till here the memory is occupied by this program. 
undef $memfile; 
printf "Memory released"; 

假設你命名的腳本eat_memory.pl,通過啓動:

perl eat_memory.pl 150 

,其中150表示兆

+0

謝謝,但我無法在機器上運行perl,我只能使用busybox。 我發現沒有辦法使用busybox運行c或python或perl程序 – limovala 2013-05-06 06:58:07

+0

@AbhishekLal如果你不能運行Perl,爲什麼你把它作爲問題的標籤? – 2013-05-07 01:45:27

+0

@Brad Gilbert因爲我的懷疑,我添加了它「busybox是否帶有python解釋器,perl或C編譯器?」 – limovala 2013-05-07 05:05:18