64비트 OS에서 32비트 JVM의 최대 Java 힙 크기
문제는 32비트 OS의 최대 주소 지정 가능한 메모리 크기가 4GB이고 JVM의 최대 힙 크기는 예약 가능한 연속된 여유 메모리 양에 따라 달라지기 때문에 32비트 OS의 최대 힙 크기에 대한 것이 아닙니다.
64비트 OS에서 실행되는 32비트 JVM의 최대 히프 크기(이론적으로나 실질적으로 달성 가능한)를 알고 싶습니다.기본적으로 SO 관련 질문의 수치와 유사한 답변을 보고 있습니다.
64비트 JVM이 아닌 32비트 JVM을 사용하는 이유는 기술적이 아니라 관리/관료적이기 때문입니다.실가동 환경에 64비트 JVM을 설치하는 것은 너무 늦었을 수 있습니다.
Java Runtime에 문의할 수 있습니다.
public class MaxMemory {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
long totalMem = rt.totalMemory();
long maxMem = rt.maxMemory();
long freeMem = rt.freeMemory();
double megs = 1048576.0;
System.out.println ("Total Memory: " + totalMem + " (" + (totalMem/megs) + " MiB)");
System.out.println ("Max Memory: " + maxMem + " (" + (maxMem/megs) + " MiB)");
System.out.println ("Free Memory: " + freeMem + " (" + (freeMem/megs) + " MiB)");
}
}
그러면 기본 힙 할당에 따라 "최대 메모리"가 보고됩니다. 아직 .-Xmx
(HotSpot에서).Windows 7 Enterprise 64비트에서 실행 중인 32비트 HotSpot JVM은 최대 1577MiB를 할당할 수 있습니다.
[C: 스크래치]> Java - Xmx1600M 최대 메모리VM 초기화 중 오류가 발생했습니다.개체 힙을 위한 충분한 공간을 예약할 수 없습니다.Java 가상 시스템을 생성할 수 없습니다. [C: 스크래치]> Java - Xmx1590M 최대 메모리총 메모리: 2031616 (1.9375 MiB)최대 메모리: 1654456320 (1577.8125 MiB)빈 메모리: 1840872 (1.75559234619 MiB)[C: 스크래치]>
64비트 JVM이 같은 OS에 있으면 당연히 훨씬 더 높습니다(약 3TiB).
[C: 스크래치]> Java - Xmx3560G 최대 메모리VM 초기화 중 오류가 발생했습니다.개체 힙을 위한 충분한 공간을 예약할 수 없습니다.[C: 스크래치]> Java - Xmx3550G 최대 메모리총 메모리: 94240768 (89.875 MiB)최대 메모리: 3388252028 (3184151.84297 MiB)빈 메모리: 93747752 (89.4048233032 MiB)[C: 스크래치]>
이미 언급한 바와 같이 OS에 따라 다릅니다.
- 32비트 Windows의 경우: 2GB 미만이 됩니다(Windows 내부 장부에 사용자 프로세스의 경우 2GB로 기재되어 있습니다).
- 32비트 BSD/Linux의 경우: 3GB 미만(Devil Book 참조)
- 32비트 MacOS X의 경우: 4GB 미만(Mac OS X 내부 매뉴얼 참조)
- 32비트 Solaris에 대해서는 확실하지 않지만 위의 코드는 이 답변에서 테스트되었습니다.
64비트 호스트 OS의 경우 JVM이 32비트인 경우에도 위와 같이 의존합니다.
-- 업데이트 20110905:다른 몇 가지 관찰/상세 사항을 지적하고 싶습니다.
- 이것을 실행한 하드웨어는 64비트이며, 실제 RAM은 6GB가 장착되어 있습니다.운영체제는 Windows 7 Enterprise 64비트.
- 의실실의
Runtime.MaxMemory
할당할 수 있는 것은, operating system의 작업 세트에 의해서도 다릅니다.Virtual Box를 실행하고 있을 때 이 기능을 실행한 적이 있는데 HotSpot JVM을 정상적으로 시작할 수 없었습니다.-Xmx1590M
더 작아져야 했어요.경우 ).
32비트 JVM은 하나의 큰 메모리 청크가 있고 원시 포인터를 사용할 것으로 예상되는 경우 4Gb를 초과할 수 없습니다(이는 포인터에도 적용되는 32비트 제한이기 때문입니다).여기에는 Sun과 IBM의 구현도 포함됩니다.예를 들어 JRockit 등의 32비트 구현에 대용량 메모리 옵션이 있는지 알 수 없습니다.
이 제한에 도달할 것으로 예상될 경우 운영 환경에 대해 64비트 JVM을 검증하는 병렬 트랙을 시작하는 것을 적극 검토하여 32비트 환경이 중단될 때를 대비해야 합니다.그렇지 않으면 당신은 그 일을 압박감 속에서 해야 할 것이고, 이것은 결코 좋은 일이 아니다.
2014-05-15 편집: Oracle FAQ:
32비트 JVM의 이론상 최대 힙 제한은 4G입니다.사용 가능한 스왑, 커널 주소 공간 사용률, 메모리 조각화 및 VM 오버헤드 등 다양한 추가 제약으로 인해 실제로는 제한이 훨씬 낮아질 수 있습니다.대부분의 최신 32비트 Windows 시스템에서 최대 힙 크기는 1.4G에서 1.6G 사이즈가 됩니다.32비트 Solaris 커널에서는 주소 공간이 2G로 제한됩니다.32비트 VM을 실행하는 64비트 운영 체제에서는 최대 힙 크기를 더 크게 하여 많은 Solaris 시스템에서 4G에 근접할 수 있습니다.
(http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit)
OS 를 지정하지 않습니다.
Windows(내 어플리케이션의 경우 장기간 실행되는 리스크 관리 어플리케이션)에서는 Windows 32비트에서는 1280MB를 넘지 않는 것으로 나타났습니다.32비트 JVM을 64비트 이하로 실행해도 차이가 없을 것 같습니다.
앱을 Linux로 포팅하고 64비트 하드웨어에서 32비트 JVM을 실행하고 있으며 2.2가 있습니다.GB VM은 매우 쉽게 실행됩니다.
메모리 사용 목적에 따라서는 GC가 가장 큰 문제가 될 수 있습니다.
4.1.2부터 힙사이징:
「32비트 프로세스 모델의 경우, 프로세스의 최대 가상 주소 사이즈는 통상 4 GB입니다만, 일부의 operating system에서는 2 GB 또는 3 GB로 제한됩니다.최대 히프 사이즈는 보통 -Xmx3800m(1600m)(2GB 제한)이지만 실제 제한은 애플리케이션에 따라 다릅니다.64비트 프로세스 모델의 경우 기본적으로 최대값은 무제한입니다."
Windows XP에서 Java의 최대 메모리 용량에 대한 매우 좋은 답변을 찾았습니다.
우리는 최근에 이것을 경험했다.최근 Solaris(x86-64 버전 5.10)에서 Linux(RedHat x86-64)로 포팅한 결과 Solaris보다 Linux의 32비트 JVM 프로세스에 사용할 수 있는 메모리가 적다는 것을 알게 되었습니다.
Solaris의 경우 약 4GB입니다(http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_heap_32bit)).
앱을 -Xms2560m -Xmx2560m -XX:MaxPermSize=sqm -XX로 실행했습니다.PermSize=solaris에서는 과거 몇 년 동안 문제가 없었습니다.Linux로 이행하려고 했는데 부팅 시 메모리 부족 오류가 랜덤하게 발생하였습니다.-Xms2300-Xmx2300에서만 일관되게 기동할 수 있었습니다.그 후, 서포트로부터 이것에 대한 통지를 받았습니다.
Linux 에서는 32비트 프로세스의 주소 지정 가능한 주소 공간은 최대 3GB(3072MB)이지만 Solaris 에서는 최대 4GB(4096MB)입니다.
64비트 OS에서의 32비트 JVM의 제한은 32비트 OS에서의 32비트 JVM의 제한과 동일합니다.결국 32비트 JVM은 (가상화 측면에서) 32비트 가상 머신에서 실행되므로 64비트 OS/머신에서 실행 중인지 알 수 없습니다.
32비트 OS에서 32비트 JVM을 실행하는 것의 장점 중 하나는 물리 메모리를 늘릴 수 있기 때문에 스와핑이나 페이징 빈도가 낮아진다는 것입니다.그러나 이 이점은 여러 프로세스가 있는 경우에만 완전히 실현됩니다.
64비트가 아닌 32비트의 JVM을 사용하는 이유는 기술적인 것이 아니라 관리/관료적인 것입니다.
BEA에서 작업했을 때 64비트 JVM에서는 평균 애플리케이션이 실제로 32비트 JVM에서 실행되었을 때보다 느리게 실행되었음을 알 수 있었습니다.경우에 따라서는 퍼포먼스 적중률이 25%나 느렸습니다.따라서 애플리케이션에 필요한 메모리가 모두 추가되지 않는 한 32비트 서버를 더 설치하는 것이 좋습니다.
BEA 프로페셔널 서비스 직원이 64비트를 사용하는 데 있어 가장 일반적인 기술적 이유 세 가지는 다음과 같습니다.
- 응용 프로그램이 여러 개의 거대한 이미지를 조작하고 있었어요
- 어플리케이션은 엄청난 수치 계산을 하고 있었습니다.
- 애플리케이션 메모리 누수가 있었고, 고객은 정부 계약에서 가장 중요한 사람이었으며, 메모리 누수를 추적하는 데 시간과 비용을 들이고 싶지 않았습니다.(대용량 메모리를 사용하면 MTBF가 증가하여 프라임은 계속 지불됩니다.)
.
Oracle이 현재 소유하고 있는 JROCKIT JVM은 연속되지 않은 힙 사용을 지원하므로 JVM이 64비트 Windows OS에서 실행 중일 때 32비트 JVM이 3.8GB 이상의 메모리에 액세스할 수 있습니다(32비트 OS에서 실행 중일 경우 2.8GB).
http://blogs.oracle.com/jrockit/entry/how_to_get_almost_3_gb_heap_on_windows
JVM은 다음 사이트에서 무료로 다운로드(등록 필요)할 수 있습니다.
http://www.oracle.com/technetwork/middleware/jrockit/downloads/index.html
다음은 Solaris 및 Linux 64비트에서의 테스트입니다.
Solaris 10 - SPARC - T5220 머신 (32GB RAM 탑재, 빈 용량 약9GB)
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3750m MaxMemory
Error occurred during initialization of VM
Could not reserve space for ObjectStartArray
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3700m MaxMemory
Total Memory: 518520832 (494.5 MiB)
Max Memory: 3451912192 (3292.0 MiB)
Free Memory: 515815488 (491.91998291015625 MiB)
Current PID is: 28274
Waiting for user to press Enter to finish ...
$ java -version
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Server VM (build 20.5-b03, mixed mode)
$ which java
/usr/bin/java
$ file /usr/bin/java
/usr/bin/java: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped, no debugging information available
$ prstat -p 28274
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
28274 user1 670M 32M sleep 59 0 0:00:00 0.0% java/35
BTW: Java는 스타트업에서 실제 메모리를 많이 할당하지 않는 것 같습니다.인스턴스 1개당 100MB 정도밖에 걸리지 않는 것 같았습니다(10개부터 시작).
Solaris 10 - x86 - VMWare VM (8 GB RAM 탑재) (약 3 GB
3GB의 빈 RAM은 실제가 아닙니다.ZFS 캐시가 사용하는 RAM의 큰 청크가 있지만 정확한 용량을 확인할 수 있는 루트 액세스 권한이 없습니다.
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3650m MaxMemory
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3600m MaxMemory
Total Memory: 516423680 (492.5 MiB)
Max Memory: 3355443200 (3200.0 MiB)
Free Memory: 513718336 (489.91998291015625 MiB)
Current PID is: 26841
Waiting for user to press Enter to finish ...
$ java -version
java version "1.6.0_41"
Java(TM) SE Runtime Environment (build 1.6.0_41-b02)
Java HotSpot(TM) Server VM (build 20.14-b01, mixed mode)
$ which java
/usr/bin/java
$ file /usr/bin/java
/usr/bin/java: ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, not stripped, no debugging information available
$ prstat -p 26841
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
26841 user1 665M 22M sleep 59 0 0:00:00 0.0% java/12
RedHat 5.5 - x86 - 4 GB RAM 탑재 VM (약 3.8 GB 사용 - 버퍼 200 MB, 캐시 3.1 GB, 따라서 약 3 GB 사용 가능)
$ alias java='$HOME/jre/jre1.6.0_34/bin/java'
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3500m MaxMemory
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3450m MaxMemory
Total Memory: 514523136 (490.6875 MiB)
Max Memory: 3215654912 (3066.6875 MiB)
Free Memory: 511838768 (488.1274871826172 MiB)
Current PID is: 21879
Waiting for user to press Enter to finish ...
$ java -version
java version "1.6.0_34"
Java(TM) SE Runtime Environment (build 1.6.0_34-b04)
Java HotSpot(TM) Server VM (build 20.9-b04, mixed mode)
$ file $HOME/jre/jre1.6.0_34/bin/java
/home/user1/jre/jre1.6.0_34/bin/java: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
$ cat /proc/21879/status | grep ^Vm
VmPeak: 3882796 kB
VmSize: 3882796 kB
VmLck: 0 kB
VmHWM: 12520 kB
VmRSS: 12520 kB
VmData: 3867424 kB
VmStk: 88 kB
VmExe: 40 kB
VmLib: 14804 kB
VmPTE: 96 kB
JRE 7을 사용하는 동일한 머신
$ alias java='$HOME/jre/jre1.7.0_21/bin/java'
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3500m MaxMemory
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
$ java -XX:PermSize=128M -XX:MaxPermSize=256M -Xms512m -Xmx3450m MaxMemory
Total Memory: 514523136 (490.6875 MiB)
Max Memory: 3215654912 (3066.6875 MiB)
Free Memory: 511838672 (488.1273956298828 MiB)
Current PID is: 23026
Waiting for user to press Enter to finish ...
$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)
$ file $HOME/jre/jre1.7.0_21/bin/java
/home/user1/jre/jre1.7.0_21/bin/java: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
$ cat /proc/23026/status | grep ^Vm
VmPeak: 4040288 kB
VmSize: 4040288 kB
VmLck: 0 kB
VmHWM: 13468 kB
VmRSS: 13468 kB
VmData: 4024800 kB
VmStk: 88 kB
VmExe: 4 kB
VmLib: 10044 kB
VmPTE: 112 kB
훨씬 더 나을 거야
64비트 호스트에서 실행되는 32비트 JVM의 경우, JVM, 자체 DLL 및 OS 32비트 호환성 항목이 로드된 후 사용할 수 있는 조각화되지 않은 가상 공간이 힙에 남아 있을 것으로 예상됩니다.3GB가 가능하다고 생각하겠지만, 32비트 호스트 랜드에서의 성능 향상에 따라 얼마나 더 나은지 알 수 있습니다.
또한 3GB의 대용량 힙을 만들 수 있더라도 GC의 일시 정지가 문제가 될 수 있으므로 만들지 않는 것이 좋습니다.어떤 사람들은 JVM을 하나 이상의 대용량 메모리보다 더 많이 실행하여 추가 메모리를 사용합니다.지금 JVM을 조정해서 거대한 더미를 더 잘 다룰 수 있을 것 같아요.
얼마나 더 잘 할 수 있을지 정확히 알기는 좀 어렵네요.당신의 32비트 상황은 실험을 통해 쉽게 판별할 수 있을 것 같습니다.특히 32비트 호스트에서 사용할 수 있는 가상 공간은 상당히 제한적이기 때문에 많은 요소가 고려되기 때문에 추상적으로 예측하기는 어렵습니다.히프는 연속된 가상 메모리에 존재해야 하므로 dll 주소 공간의 단편화 및 OS 커널에 의한 주소 공간의 내부 사용에 따라 가능한 할당 범위가 결정됩니다.
OS는 하드웨어 디바이스의 매핑과 자체 동적 할당을 위해 주소 공간의 일부를 사용합니다.이 메모리는 Java 프로세스 주소 공간에 매핑되지 않지만 OS 커널은 이 메모리와 사용자의 주소 공간에 동시에 액세스할 수 없기 때문에 프로그램의 가상 공간 크기가 제한됩니다.
DLL의 로드는 JVM의 구현 및 릴리스에 따라 달라집니다.OS 커널의 로드는 릴리스, 하드웨어, 마지막 재부팅 이후 지금까지 매핑된 내용 수에 따라 달라집니다.
정리하다
32비트 랜드에서는 1~2GB, 64비트에서는 3GB 정도이기 때문에 전체적으로 약 2배 향상됩니다.
Solaris의 경우 Solaris 2.5 이후 약 3.5GB(약 10년 전)의 제한이 있습니다.
App Inventor for Android Blocks Editor에서 사용하는 JVM과 동일한 문제가 있었습니다.히프를 최대 925m로 설정합니다.이 정도로는 부족하지만 기계상의 여러 가지 랜덤 요인에 따라 1200m 이상 설정할 수 없었습니다.
파이어폭스에서 베타 64비트 브라우저인 Nightly와 JAVA 7 64비트 버전을 다운로드했습니다.
아직 새로운 힙 제한을 찾지 못했지만 힙 크기가 5900m인 JVM을 열었습니다.문제없어!
RAM이 24GB인 머신에서 Windows 7 64비트 Ultimate를 실행하고 있습니다.
32비트 Linux 머신에서 히프 사이즈를 2200M까지 설정해 봤는데 JVM은 정상적으로 동작했습니다.2300M으로 설정했을 때 JVM이 시작되지 않았습니다.
이것은 무거운 터널링이지만 3GB 힙을 얻을 수 있습니다.
핫스팟 32비트 JVM에 대한 한 가지 추가 사항:- 네이티브 힙 용량 = 4 Gig – Java 힙 - PermGen;
Java 힙과 네이티브 힙이 경합하고 있기 때문에 32비트 JVM에서는 특히 까다로워질 수 있습니다.Java 힙이 클수록 네이티브 힙은 작아집니다.32비트 VM용으로 큰 힙(예: .2.5GB 이상)을 설정하려고 하면 애플리케이션 설치 공간, 스레드 수 등에 따라 기본 Out Of Memory Error 위험이 증가합니다.
이론적으로는 4GB이지만 실제로는 (IBM JVM의 경우):
Windows 2k8 64, IBM Websphere Application Server 8.5 32비트
C:\IBM\WebSphere\AppServer\bin>managesdk.bat -listAvailable -verbose CWSDK1003I: Доступные SDK: CWSDK1005I: Имя SDK: 1.6_32 - com.ibm.websphere.sdk.version.1.6_32=1.6 - com.ibm.websphere.sdk.bits.1.6_32=32 - com.ibm.websphere.sdk.location.1.6_32=${WAS_INSTALL_ROOT}/java - com.ibm.websphere.sdk.platform.1.6_32=windows - com.ibm.websphere.sdk.architecture.1.6_32=x86_32 - com.ibm.websphere.sdk.nativeLibPath.1.6_32=${WAS_INSTALL_ROOT}/lib/native/win /x86_32/ CWSDK1001I: Задача managesdk выполнена успешно. C:\IBM\WebSphere\AppServer\java\bin>java -Xmx2036 MaxMemory JVMJ9GC017E -Xmx слишком мала, должна быть не меньше 1 M байт JVMJ9VM015W Ошибка инициализации для библиотеки j9gc26(2): Не удалось инициализи ровать Could not create the Java virtual machine. C:\IBM\WebSphere\AppServer\java\bin>java -Xmx2047M MaxMemory Total Memory: 4194304 (4.0 MiB) Max Memory: 2146435072 (2047.0 MiB) Free Memory: 3064536 (2.9225692749023438 MiB) C:\IBM\WebSphere\AppServer\java\bin>java -Xmx2048M MaxMemory JVMJ9VM015W Ошибка инициализации для библиотеки j9gc26(2): Не удалось создать эк земпляр кучи; запрошено 2G Could not create the Java virtual machine.
RHEL 6.4 64, IBM Websphere Application Server 8.5.5 32비트
[bin]./java -Xmx3791M MaxMemory Total Memory: 4194304 (4.0 MiB) Max Memory: 3975151616 (3791.0 MiB) Free Memory: 3232992 (3.083221435546875 MiB) [root@nagios1p bin]# ./java -Xmx3793M MaxMemory Total Memory: 4194304 (4.0 MiB) Max Memory: 3977248768 (3793.0 MiB) Free Memory: 3232992 (3.083221435546875 MiB) [bin]# /opt/IBM/WebSphere/AppServer/bin/managesdk.sh -listAvailable -verbose CWSDK1003I: Available SDKs : CWSDK1005I: SDK name: 1.6_32 - com.ibm.websphere.sdk.version.1.6_32=1.6 - com.ibm.websphere.sdk.bits.1.6_32=32 - com.ibm.websphere.sdk.location.1.6_32=${WAS_INSTALL_ROOT}/java - com.ibm.websphere.sdk.platform.1.6_32=linux - com.ibm.websphere.sdk.architecture.1.6_32=x86_32 -com.ibm.websphere.sdk.nativeLibPath.1.6_32=${WAS_INSTALL_ROOT}/lib/native/linux/x86_32/ CWSDK1001I: Successfully performed the requested managesdk task.
이 제한은 또한 한 가지 이유로 인해 발생합니다.32 bit
VM,heap
주소 0부터 시작해야 합니다.4GB
.
다음을 통해 참조할 수 있습니다.
0000....0001
즉, 이 특정 비트 표현을 가진 참조는 힙에서 첫 번째 메모리에 액세스하려는 것을 의미합니다.그러기 위해서는 힙이 주소 0에서 시작해야 합니다.하지만 그런 일은 절대 일어나지 않습니다. 0에서 오프셋으로 시작합니다.
| .... .... {heap_start .... heap_end} ... |
--> (this can't be referenced) <--
힙은 주소 0에서 시작하지 않기 때문에OS
there 、 a , , , , , ,비트가 전혀 사용되지 않고 있습니다.32
참조할 수 있는 힙은 더 낮습니다.
언급URL : https://stackoverflow.com/questions/1434779/maximum-java-heap-size-of-a-32-bit-jvm-on-a-64-bit-os
'programing' 카테고리의 다른 글
Java / Android - 전체 스택 트레이스를 인쇄하는 방법 (0) | 2022.10.06 |
---|---|
PHP 객체 vs 어레이 -- 반복 시 성능 비교 (0) | 2022.10.06 |
생성 시 및 업데이트 시 MySQL CURRENT_TIMESTamp (0) | 2022.10.06 |
HTML을 PHP 함수로 되돌리는 방법이 있습니까?(반환값을 문자열로 작성하지 않음) (0) | 2022.10.06 |
numpy.random.seed(0)의 역할은 무엇입니까? (0) | 2022.10.06 |