คำถามติดแท็ก memory

ใช้แท็กนี้สำหรับการจัดการหน่วยความจำหรือปัญหาในการเขียนโปรแกรม สำหรับคำถามเกี่ยวกับปัญหาฮาร์ดแวร์หน่วยความจำหรือข้อผิดพลาดในซอฟต์แวร์ทั่วไปให้ไปที่ https://superuser.com หรือ https://serverfault.com หากเกี่ยวข้องกับฮาร์ดแวร์หรือซอฟต์แวร์ระดับองค์กร

8
การใช้งานหน่วยความจำเสมือนจาก Java ภายใต้ Linux ใช้หน่วยความจำมากเกินไป
ฉันมีปัญหากับแอปพลิเคชัน Java ที่ทำงานภายใต้ Linux เมื่อฉันเปิดแอปพลิเคชันโดยใช้ขนาดฮีพสูงสุดเริ่มต้น (64 MB) ฉันเห็นการใช้แอพพลิเคชั่นท็อปที่จัดสรรหน่วยความจำเสมือน 240 MB ให้กับแอปพลิเคชัน สิ่งนี้สร้างปัญหาบางอย่างกับซอฟต์แวร์อื่น ๆ บนคอมพิวเตอร์ซึ่งค่อนข้าง จำกัด ทรัพยากร หน่วยความจำเสมือนที่สำรองไว้จะไม่ถูกใช้เท่าที่ฉันเข้าใจเพราะเมื่อเราไปถึงขีด จำกัด ฮีปและการOutOfMemoryErrorโยน ฉันรันแอปพลิเคชันเดียวกันภายใต้ windows และฉันเห็นว่าขนาดหน่วยความจำเสมือนและขนาดฮีปมีความคล้ายคลึงกัน มีอยู่หรือไม่ว่าฉันสามารถกำหนดค่าหน่วยความจำเสมือนที่ใช้สำหรับกระบวนการ Java ภายใต้ Linux ได้หรือไม่ แก้ไข 1 : ปัญหาไม่ใช่ฮีป ปัญหาคือถ้าฉันตั้งค่า Heap เป็น 128 MB ตัวอย่างเช่น Linux ยังคงจัดสรรหน่วยความจำเสมือน 210 MB ซึ่งไม่จำเป็นเลยทีเดียว ** แก้ไข 2 : การใช้ulimit -vช่วยให้ จำกัด จำนวนหน่วยความจำเสมือน …

1
วัตถุประสงค์ของการ std :: launder คืออะไร?
P0137แนะนำเทมเพลตฟังก์ชั่น std::launderและทำการเปลี่ยนแปลงมากมายในมาตรฐานในส่วนที่เกี่ยวข้องกับสหภาพอายุการใช้งานและพอยน์เตอร์ ปัญหานี้แก้ไขได้อย่างไร การเปลี่ยนแปลงภาษาที่ฉันต้องระวังคืออะไร และสิ่งที่เราlaunderไอเอ็นจี?


11
จะดูกระบวนการที่เรียงลำดับตามการใช้หน่วยความจำจริงได้อย่างไร
ฉันมีเซิร์ฟเวอร์ที่มีหน่วยความจำ 12G ส่วนของส่วนบนแสดงอยู่ด้านล่าง: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12979 frank 20 0 206m 21m 12m S 11 0.2 26667:24 krfb 13 root 15 -5 0 0 0 S 1 0.0 36:25.04 ksoftirqd/3 59 root 15 -5 0 0 0 S 0 0.0 4:53.00 …
240 linux  memory  ram  opensuse 

16
รับข้อมูลระบบระดับ OS
ขณะนี้ฉันกำลังสร้างแอป Java ที่สามารถลงเอยด้วยการใช้งานบนแพลตฟอร์มที่แตกต่างกัน แต่ส่วนใหญ่แตกต่างจาก Solaris, Linux และ Windows มีใครสามารถแยกข้อมูลเช่นพื้นที่ดิสก์ปัจจุบันที่ใช้การใช้งาน CPU และหน่วยความจำที่ใช้ในระบบปฏิบัติการพื้นฐานได้สำเร็จหรือไม่ แอป Java กำลังทำงานอะไรอยู่ โดยเฉพาะอย่างยิ่งฉันต้องการรับข้อมูลนี้โดยไม่ใช้ JNI
232 java  memory  resources  system 

8
ฉันจะโปรไฟล์การใช้หน่วยความจำใน Python ได้อย่างไร?
ฉันเพิ่งเริ่มสนใจอัลกอริทึมและได้เริ่มสำรวจพวกเขาด้วยการเขียนการใช้งานที่ไร้เดียงสาและปรับให้เหมาะสมในรูปแบบต่างๆ ฉันคุ้นเคยกับโมดูล Python มาตรฐานสำหรับการรวบรวมสถานะ (สำหรับสิ่งส่วนใหญ่ฉันพบว่าฟังก์ชัน timeit magic ใน IPython เพียงพอแล้ว) แต่ฉันก็สนใจการใช้หน่วยความจำด้วยดังนั้นฉันจึงสามารถสำรวจการแลกเปลี่ยนเหล่านั้นได้เช่นกัน ( เช่นค่าใช้จ่ายในการแคชตารางของค่าที่คำนวณก่อนหน้านี้กับการคำนวณใหม่ตามที่จำเป็น) มีโมดูลที่จะโปรไฟล์การใช้งานหน่วยความจำของฟังก์ชั่นที่กำหนดสำหรับฉันหรือไม่?
230 python  memory  profiling 

8
อันตรายเมื่อสร้างเธรดที่มีขนาดสแต็ก 50x เป็นค่าเริ่มต้นคืออะไร
ขณะนี้ฉันกำลังทำงานกับโปรแกรมที่มีประสิทธิภาพสูงและหนึ่งเส้นทางที่ฉันตัดสินใจสำรวจซึ่งอาจช่วยลดการใช้ทรัพยากรคือการเพิ่มขนาดสแต็กของเธรดของผู้ปฏิบัติงานเพื่อให้ฉันสามารถย้ายข้อมูลส่วนใหญ่float[]ที่ฉันจะเข้าสู่ สแต็ก (ใช้stackalloc) ฉันได้อ่านแล้วว่าขนาดสแต็กเริ่มต้นสำหรับเธรดคือ 1 MB ดังนั้นเพื่อย้ายทั้งหมดของfloat[]ฉันฉันจะต้องขยายสแต็กประมาณ 50 ครั้ง (ถึง 50 MB ~) ฉันเข้าใจว่าโดยทั่วไปถือว่าเป็น "ไม่ปลอดภัย" และไม่แนะนำ แต่หลังจากทำการเปรียบเทียบโค้ดปัจจุบันของฉันกับวิธีนี้ฉันพบว่าความเร็วในการประมวลผลเพิ่มขึ้น530% ! ดังนั้นฉันจึงไม่สามารถผ่านตัวเลือกนี้ได้โดยไม่ต้องตรวจสอบเพิ่มเติมซึ่งทำให้ฉันมีคำถาม สิ่งที่เป็นอันตรายที่เกี่ยวข้องกับการเพิ่มสแต็คให้มีขนาดใหญ่ (สิ่งที่อาจผิดไป) และฉันควรระมัดระวังอะไรบ้างเพื่อลดอันตรายดังกล่าว รหัสทดสอบของฉัน public static unsafe void TestMethod1() { float* samples = stackalloc float[12500000]; for (var ii = 0; ii < 12500000; ii++) { samples[ii] = 32768; } } public …
228 c#  .net  memory  stack-memory 


4
พูลหน่วยความจำ java ถูกแบ่งอย่างไร?
ขณะนี้ฉันกำลังตรวจสอบแอปพลิเคชัน Java ด้วย jconsole แท็บหน่วยความจำให้คุณเลือกระหว่าง: Heap Memory Usage Non-Heap Memory Usage Memory Pool “Eden Space” Memory Pool “Survivor Space” Memory Pool “Tenured Gen” Memory Pool “Code Cache” Memory Pool “Perm Gen” ความแตกต่างระหว่างพวกเขาคืออะไร?
224 java  memory  pool 

10
การเข้าถึงอาร์เรย์นั้นมีอันตรายแค่ไหน
การเข้าถึงอาเรย์นั้นมีอันตรายเพียงใดนอกขอบเขต (ใน C)? บางครั้งมันอาจเกิดขึ้นที่ฉันอ่านจากนอกอาร์เรย์ (ตอนนี้ฉันเข้าใจแล้วฉันเข้าถึงหน่วยความจำที่ใช้โดยส่วนอื่น ๆ ของโปรแกรมของฉันหรือมากกว่านั้น) หรือฉันพยายามตั้งค่าเป็นดัชนีนอกอาร์เรย์ บางครั้งโปรแกรมขัดข้อง แต่บางครั้งก็ทำงานเพียงให้ผลลัพธ์ที่ไม่คาดคิด ทีนี้สิ่งที่ฉันอยากรู้ก็คือมันอันตรายแค่ไหน? ถ้ามันทำให้โปรแกรมของฉันเสียหายก็ไม่เลว หากในอีกทางหนึ่งมันแตกบางอย่างนอกโปรแกรมของฉันเพราะฉันสามารถเข้าถึงหน่วยความจำที่ไม่เกี่ยวข้องทั้งหมดได้ฉันคิดว่า ฉันอ่าน 'สิ่งที่สามารถเกิดขึ้นได้' มากมาย'การแบ่งส่วนอาจเป็นปัญหาที่น้อยที่สุด' 'ฮาร์ดดิสก์ของคุณอาจเปลี่ยนเป็นสีชมพูและยูนิคอร์นอาจร้องเพลงใต้หน้าต่างของคุณ' ซึ่งเป็นสิ่งที่ดี แต่สิ่งที่เป็นอันตรายจริงๆ? คำถามของฉัน: การอ่านค่าจากด้านนอกอาเรย์จะทำให้เกิดความเสียหายอะไรนอกเหนือจากโปรแกรมของฉันหรือไม่? ฉันคิดว่าการดูสิ่งต่าง ๆ จะไม่เปลี่ยนแปลงอะไรเลยหรืออย่างเช่นจะเปลี่ยนแอตทริบิวต์ 'เปิดครั้งล่าสุด' ของไฟล์ที่ฉันไปให้ถึง การตั้งค่าต่าง ๆ นอกอาร์เรย์สามารถทำให้เกิดความเสียหายอะไรนอกเหนือจากโปรแกรมของฉันได้หรือไม่? จาก คำถาม Stack Overflowฉันรวบรวมว่าเป็นไปได้ที่จะเข้าถึงตำแหน่งหน่วยความจำใด ๆ ที่ไม่มีการรับประกันความปลอดภัย ตอนนี้ฉันรันโปรแกรมเล็ก ๆ ของฉันจากภายใน XCode นั่นให้การป้องกันพิเศษรอบ ๆ โปรแกรมของฉันซึ่งมันไม่สามารถเข้าถึงภายนอกหน่วยความจำของตัวเองได้หรือไม่? มันจะเป็นอันตรายต่อ XCode หรือไม่? คำแนะนำใด ๆ เกี่ยวกับวิธีเรียกใช้โค้ด buggy ของฉันอย่างปลอดภัยหรือไม่ …
221 c  arrays  memory 

12
การใช้หน่วยความจำของวัตถุใน Java คืออะไร?
พื้นที่หน่วยความจำถูกใช้โดยวัตถุหนึ่งตัวที่มี 100 คุณลักษณะเหมือนกับของวัตถุ 100 ชิ้นโดยที่มีหนึ่งแอตทริบิวต์ มีการจัดสรรหน่วยความจำเท่าใดสำหรับวัตถุ? มีการใช้พื้นที่เพิ่มเติมเท่าใดเมื่อเพิ่มแอตทริบิวต์
216 java  memory  footprint 

8
วิธีการ“ ดู” ทำงานอย่างไรใน PyTorch
ฉันสับสนเกี่ยวกับวิธีการview()ในข้อมูลโค้ดต่อไปนี้ class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool = nn.MaxPool2d(2,2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16*5*5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = x.view(-1, 16*5*5) x = F.relu(self.fc1(x)) x = …
208 python  memory  pytorch  torch  tensor 

12
การกระจายตัวของหน่วยความจำคืออะไร?
ฉันได้ยินคำว่า "การกระจายตัวของหน่วยความจำ" ใช้สองสามครั้งในบริบทของการจัดสรรหน่วยความจำแบบไดนามิก C ++ ฉันพบคำถามบางอย่างเกี่ยวกับวิธีจัดการกับการแตกแฟรกเมนต์ของหน่วยความจำ แต่ไม่พบคำถามโดยตรงที่เกี่ยวข้องกับมัน ดังนั้น: การกระจายตัวของหน่วยความจำคืออะไร? ฉันจะทราบได้อย่างไรว่าการกระจายตัวของหน่วยความจำเป็นปัญหาสำหรับแอปพลิเคชันของฉันหรือไม่ รายการประเภทใดที่มีโอกาสประสบมากที่สุด วิธีทั่วไปที่ดีในการจัดการกับการแตกแฟรกเมนต์คืออะไร นอกจากนี้: ฉันได้ยินมาว่าการจัดสรรแบบไดนามิกมากสามารถเพิ่มการกระจายตัวของหน่วยความจำ มันเป็นเรื่องจริงเหรอ? ในบริบทของ C ++ ฉันเข้าใจทุกคอนเทนเนอร์มาตรฐาน (std :: string, std :: vector ฯลฯ ) ใช้การจัดสรรหน่วยความจำแบบไดนามิก หากสิ่งเหล่านี้ถูกใช้ตลอดโปรแกรม (โดยเฉพาะ std :: string) การกระจายตัวของหน่วยความจำมีแนวโน้มที่จะเป็นปัญหาหรือไม่? การแตกแฟรกเมนต์หน่วยความจำจะถูกจัดการได้อย่างไรในแอปพลิเคชัน STL-heavy

8
วัตถุประสงค์ของการจัดตำแหน่งหน่วยความจำ
เป็นที่ยอมรับฉันไม่ได้รับมัน สมมติว่าคุณมีหน่วยความจำที่มีหน่วยความจำความยาว 1 ไบต์ ทำไมคุณไม่สามารถเข้าถึงตัวแปรความยาว 4 ไบต์ในการเข้าถึงหน่วยความจำเดียวในที่อยู่ที่ไม่ได้ลงนาม (เช่นไม่หารด้วย 4) เนื่องจากเป็นกรณีที่มีที่อยู่ที่จัดชิด

15
ฉันจะอ่านไฟล์ csv ขนาดใหญ่ที่มีนุ่นได้อย่างไร
ฉันพยายามอ่านไฟล์ csv ขนาดใหญ่ (aprox. 6 GB) ในนุ่นและฉันได้รับข้อผิดพลาดของหน่วยความจำ: MemoryError Traceback (most recent call last) <ipython-input-58-67a72687871b> in <module>() ----> 1 data=pd.read_csv('aphro.csv',sep=';') ... MemoryError: ความช่วยเหลือเกี่ยวกับเรื่องนี้?
194 python  pandas  csv  memory  chunks 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.