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

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

4
เหตุใดหน่วยความจำนี้จึงไม่กินหน่วยความจำจริงๆ
ฉันต้องการสร้างโปรแกรมที่จะจำลองสถานการณ์ out-of-memory (OOM) บนเซิร์ฟเวอร์ Unix ฉันสร้างหน่วยความจำที่กินง่ายสุด ๆ นี้: #include <stdio.h> #include <stdlib.h> unsigned long long memory_to_eat = 1024 * 50000; size_t eaten_memory = 0; void *memory = NULL; int eat_kilobyte() { memory = realloc(memory, (eaten_memory * 1024) + 1024); if (memory == NULL) { // realloc failed here - we …

2
Redis แคชเทียบกับการใช้หน่วยความจำโดยตรง
ฉันยังไม่ได้ใช้ Redis แต่ฉันได้ยินเกี่ยวกับเรื่องนี้และวางแผนที่จะลองใช้เป็นที่เก็บแคช ฉันได้ยินว่า Redis ใช้หน่วยความจำเป็นฐานข้อมูลที่เก็บแคชดังนั้นจะแตกต่างกันอย่างไรถ้าฉันใช้ตัวแปรเป็นประเภทข้อมูลวัตถุหรือพจนานุกรมเพื่อจัดเก็บข้อมูล ชอบ: var cache = { key: { }, key: { } ... } Redis มีข้อดีอย่างไร?
148 caching  memory  redis 

7
วิธีการล้างตัวแปรใน ipython
บางครั้งฉันรันสคริปต์อีกครั้งภายในเซสชัน ipython เดียวกันและฉันได้รับความประหลาดใจที่ไม่ดีเมื่อตัวแปรไม่ได้ถูกล้าง ฉันจะล้างตัวแปรทั้งหมดได้อย่างไร และเป็นไปได้ไหมที่จะบังคับเรื่องนี้ทุกครั้งที่ฉันเรียกใช้คำสั่งเวทย์มนตร์% run? ขอบคุณ
146 python  memory  ipython 

3
RAM สูงสุดที่แอปสามารถใช้คืออะไร?
ฉันค่อนข้างสงสัยเกี่ยวกับคำถามนี้เกี่ยวกับการจัดการหน่วยความจำของระบบปฏิบัติการ Androidดังนั้นฉันหวังว่าจะได้คำตอบอย่างละเอียดในหัวข้อนั้น สิ่งที่ฉันอยากรู้ อะไรคือจำนวนเงินสูงสุดของหน่วยความจำ (ในเมกะไบต์ / เป็น ร้อยละของจำนวน RAM) ที่การประยุกต์ใช้ Android (ที่ไม่ได้เป็น app ระบบ) สามารถใช้งานหรือไม่ มีความแตกต่างระหว่างเวอร์ชั่น Androidหรือไม่? มีความแตกต่างใด ๆ เกี่ยวกับผู้ผลิตอุปกรณ์หรือไม่ และที่สำคัญที่สุด: อะไรที่ถูกพิจารณา / ขึ้นอยู่กับว่ามันมาถึงระบบเมื่อไรที่แรมใช้งานแอพได้เท่าไร (สมมติว่าหน่วยความจำสูงสุดต่อแอพนั้นไม่ใช่จำนวนคงที่)? สิ่งที่ฉันเคยได้ยินจนถึง (2013 จนถึง): อุปกรณ์ Android ยุคแรก ๆ มีขนาดสูงสุด 16 เมกะไบต์ต่อแอป หลังจากนี้ขีด จำกัด นี้เพิ่มเป็น 24MB หรือ 32MB อะไรทำให้ฉันอยากรู้มาก: ขีด จำกัด ทั้งสองนี้ต่ำมาก ฉันเพิ่งดาวน์โหลดAndroid Task Managerเพื่อตรวจสอบ RAM อุปกรณ์ของฉัน …


9
ตรวจสอบขนาดฮีปของแอปพลิเคชันใน Android
คุณจะตรวจสอบขนาดแอพพลิเคชั่นฮีปที่พร้อมใช้งานสำหรับแอพ Android โดยทางโปรแกรมได้อย่างไร ฉันได้ยินมาว่ามีฟังก์ชั่นที่ทำสิ่งนี้ใน SDK รุ่นที่ใหม่กว่า ไม่ว่าในกรณีใดฉันกำลังมองหาโซลูชันที่ใช้งานได้ตั้งแต่ 1.5 ขึ้นไป

11
วิธีค้นหา Java Memory Leak
คุณจะพบหน่วยความจำรั่วใน Java ได้อย่างไร (โดยใช้ตัวอย่างเช่น JHat) ฉันพยายามโหลด heap dump ใน JHat เพื่อดูพื้นฐาน อย่างไรก็ตามฉันไม่เข้าใจว่าฉันควรจะสามารถค้นหาการอ้างอิงราก ( ref ) หรืออะไรก็ตามที่ถูกเรียก โดยทั่วไปฉันสามารถบอกได้ว่ามีรายการตารางแฮชหลายร้อยเมกะไบต์ ([java.util.HashMap $ Entry หรืออะไรทำนองนั้น) แต่มีการใช้แผนที่ทั่วสถานที่ ... มีวิธีการค้นหาแผนที่ขนาดใหญ่ไหม หรืออาจจะหารากทั่วไปของต้นไม้วัตถุขนาดใหญ่? [แก้ไข] ตกลงฉันอ่านคำตอบแล้ว แต่สมมุติว่าฉันเป็นไอ้เลวราคาถูก (หมายถึงฉันสนใจเรียนรู้วิธีใช้ JHat มากกว่าจ่ายให้ JProfiler) นอกจากนี้ JHat ยังมีอยู่เสมอเพราะเป็นส่วนหนึ่งของ JDK เว้นแต่จะไม่มีหนทางใดที่ JHat จะบังคับ แต่ไร้เดียงสา แต่ฉันไม่อยากจะเชื่อเลยว่าเป็นเช่นนั้น นอกจากนี้ฉันไม่คิดว่าฉันจะสามารถแก้ไขได้จริง (เพิ่มการบันทึกทุกขนาดแผนที่) และเรียกใช้มันนานพอที่ฉันจะสังเกตเห็นการรั่วไหล

5
ความสับสนในการแปลง stringstream, string และ char *
คำถามของฉันสามารถต้มลงไปที่ใดสตริงกลับมาจากการstringstream.str().c_str()มีชีวิตอยู่ในความทรงจำและทำไมไม่สามารถที่จะได้รับมอบหมายให้const char*? ตัวอย่างโค้ดนี้จะอธิบายได้ดีกว่าที่ฉันสามารถทำได้ #include <string> #include <sstream> #include <iostream> using namespace std; int main() { stringstream ss("this is a string\n"); string str(ss.str()); const char* cstr1 = str.c_str(); const char* cstr2 = ss.str().c_str(); cout << cstr1 // Prints correctly << cstr2; // ERROR, prints out garbage system("PAUSE"); return 0; } การสันนิษฐานที่stringstream.str().c_str()สามารถมอบหมายให้const …

8
อาร์เรย์ฮีปและสแต็กและชนิดของค่า
int[] myIntegers; myIntegers = new int[100]; ในโค้ดด้านบน int [100] ใหม่กำลังสร้างอาร์เรย์บนฮีปหรือไม่ จากสิ่งที่ฉันได้อ่านเกี่ยวกับ CLR ผ่าน c # คำตอบคือใช่ แต่สิ่งที่ฉันไม่เข้าใจคือสิ่งที่เกิดขึ้นกับ int จริงภายในอาร์เรย์ เนื่องจากเป็นประเภทค่าฉันจึงเดาว่าพวกเขาจะต้องอยู่ในกล่องอย่างที่ฉันทำได้เช่นส่ง myIntegers ไปยังส่วนอื่น ๆ ของโปรแกรมและมันจะทำให้สแต็คยุ่งเหยิงหากพวกเขาถูกทิ้งไว้ตลอดเวลา . หรือว่าฉันผิด? ฉันเดาว่าพวกมันเพิ่งถูกบรรจุกล่องและจะอยู่บนกองได้นานเท่าที่อาร์เรย์มี
136 c#  arrays  memory  stack  heap 

12
อะไรเป็นสาเหตุให้“ ไม่สามารถจัดสรรหน่วยความจำสำหรับพูล” ใน PHP
บางครั้งฉันพบขีด จำกัด การจัดสรรหน่วยความจำของเซิร์ฟเวอร์โดยเฉพาะอย่างยิ่งกับแอปพลิเคชันที่บวมเช่น Wordpress แต่ไม่เคยพบ "ไม่สามารถจัดสรรหน่วยความจำสำหรับพูล" และประสบปัญหาในการติดตามข้อมูลใด ๆ ไม่มีใครรู้ว่านี่หมายถึงอะไร? ฉันพยายามเพิ่มจำนวนที่memory_limitไม่ประสบความสำเร็จ ฉันยังไม่ได้ทำการเปลี่ยนแปลงที่สำคัญใด ๆ กับแอปพลิเคชัน วันหนึ่งไม่มีปัญหาวันรุ่งขึ้นฉันพบข้อผิดพลาดนี้
133 php  caching  memory  apc 

5
จะตั้งค่าการใช้งานหน่วยความจำสูงสุดสำหรับ JVM ได้อย่างไร?
ฉันต้องการ จำกัด หน่วยความจำสูงสุดที่ใช้โดย JVM หมายเหตุนี่ไม่ใช่แค่ฮีปฉันต้องการ จำกัด หน่วยความจำทั้งหมดที่ใช้โดยกระบวนการนี้

29
หลักเกณฑ์ทั่วไปเพื่อหลีกเลี่ยงการรั่วไหลของหน่วยความจำใน C ++ [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา มีเคล็ดลับทั่วไปอะไรบ้างเพื่อให้แน่ใจว่าหน่วยความจำในโปรแกรม C ++ ไม่รั่วไหล ฉันจะทราบได้อย่างไรว่าใครควรเพิ่มหน่วยความจำที่ได้รับการจัดสรรแบบไดนามิก

9
คอมไพเลอร์จะเริ่มต้นหน่วยความจำเป็น 0xCD, 0xDD และอื่น ๆ บน malloc / free / new / delete เมื่อใดและทำไม
ฉันรู้ว่าบางครั้งคอมไพเลอร์จะเริ่มต้นหน่วยความจำด้วยรูปแบบบางอย่างเช่น0xCDและ0xDD. สิ่งที่ฉันอยากรู้คือจะเกิดขึ้นเมื่อไหร่และทำไม เมื่อไหร่ สิ่งนี้เฉพาะสำหรับคอมไพเลอร์ที่ใช้หรือไม่? ทำmalloc/newและfree/deleteทำงานในลักษณะเดียวกันในเรื่องนี้หรือไม่? เป็นแพลตฟอร์มเฉพาะหรือไม่? มันจะเกิดขึ้นบนระบบปฏิบัติการอื่นเช่นLinuxหรือVxWorks? ทำไม ความเข้าใจของฉันคือสิ่งนี้เกิดขึ้นเฉพาะในWin32การกำหนดค่าการดีบักและใช้เพื่อตรวจจับการใช้หน่วยความจำมากเกินไปและเพื่อช่วยคอมไพลเลอร์ตรวจจับข้อยกเว้น คุณช่วยยกตัวอย่างที่ใช้ได้จริงว่าการเริ่มต้นนี้มีประโยชน์อย่างไร ฉันจำได้ว่าอ่านบางอย่าง (อาจอยู่ใน Code Complete 2) โดยบอกว่าเป็นการดีที่จะเริ่มต้นหน่วยความจำเป็นรูปแบบที่รู้จักเมื่อจัดสรรและรูปแบบบางอย่างจะทริกเกอร์การขัดจังหวะWin32ซึ่งจะส่งผลให้มีข้อยกเว้นที่แสดงในดีบักเกอร์ พกพาสะดวกขนาดนี้?

12
วิธีตั้งค่าหน่วยความจำ Apache Spark Executor
ฉันจะเพิ่มหน่วยความจำที่พร้อมใช้งานสำหรับโหนดตัวดำเนินการ Apache spark ได้อย่างไร ฉันมีไฟล์ 2 GB ที่เหมาะสำหรับการโหลดไปยัง Apache Spark ฉันกำลังใช้งาน apache spark ในเครื่อง 1 เครื่องดังนั้นไดรเวอร์และตัวดำเนินการจึงอยู่ในเครื่องเดียวกัน เครื่องมีหน่วยความจำ 8 GB เมื่อฉันลองนับบรรทัดของไฟล์หลังจากตั้งค่าไฟล์ที่จะแคชในหน่วยความจำฉันได้รับข้อผิดพลาดเหล่านี้: 2014-10-25 22:25:12 WARN CacheManager:71 - Not enough space to cache partition rdd_1_1 in memory! Free memory is 278099801 bytes. ฉันดูเอกสารที่นี่และตั้งค่าspark.executor.memoryเป็น4gใน$SPARK_HOME/conf/spark-defaults.conf UI แสดงตัวแปรนี้ถูกตั้งค่าใน Spark Environment คุณสามารถดูภาพหน้าจอได้ที่นี่ อย่างไรก็ตามเมื่อฉันไปที่แท็บ Executorขีด จำกัด หน่วยความจำสำหรับ Executor …

14
การทำความเข้าใจการนับอ้างอิงด้วย Cocoa และ Objective-C
ฉันเพิ่งเริ่มดู Objective-C และ Cocoa ด้วยมุมมองในการเล่นกับ iPhone SDK ฉันพอใจกับแนวคิดmallocและfreeแนวคิดของ C พอสมควรแต่รูปแบบการนับการอ้างอิงของ Cocoa ทำให้ฉันค่อนข้างสับสน ฉันบอกแล้วว่ามันสวยมากเมื่อคุณเข้าใจ แต่ฉันยังไม่เกินโคก วิธีทำrelease, retainและautoreleaseการทำงานและสิ่งที่มีการประชุมเกี่ยวกับการใช้ของพวกเขา? (หรือล้มเหลวคุณอ่านอะไรที่ช่วยให้คุณได้รับมัน)

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