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

หน่วยความจำหมายถึงอุปกรณ์ทางกายภาพที่ใช้ในการจัดเก็บโปรแกรมหรือข้อมูลบนพื้นฐานชั่วคราวหรือถาวรสำหรับใช้ในคอมพิวเตอร์หรืออุปกรณ์อิเล็กทรอนิกส์ดิจิตอลอื่น ๆ

4
การลงทะเบียน CPU คืออะไร
คำถามนี้รบกวนฉันมาระยะหนึ่งแล้วและวันนี้ฉันคิดว่าฉันจะทำ Google ฉันได้อ่านสิ่งบางอย่างเกี่ยวกับเรื่องนี้และดูเหมือนว่ามันคล้ายกันมากกับสิ่งที่ฉันได้รู้จักกันเสมอเป็นหน่วยประมวลผลแคช มีความแตกต่างระหว่างฉันสองคนหรือว่าถูกต้องเมื่อฉันคิดว่ามันเหมือนกันหรือไม่? จำเป็นต้องมีการลงทะเบียนเพื่อใช้ภายใน CPU เพื่อให้ทำงานได้หรือไม่? ตามวิกิพีเดียการลงทะเบียนเป็นสถานที่ใน CPU ที่สามารถเข้าถึงและแก้ไขหน่วยความจำได้อย่างรวดเร็วก่อนที่จะถูกส่งกลับไปที่ RAM ฉันเข้าใจผิดหรือแคชและลงทะเบียนเหมือนกันจริงหรือไม่?

3
เหตุใด int จึงใช้เวลา 12 ไบต์ในเครื่องบางเครื่อง
ฉันสังเกตเห็นสิ่งที่แปลกหลังจากรวบรวมรหัสนี้ในเครื่องของฉัน: #include <stdio.h> int main() { printf("Hello, World!\n"); int a,b,c,d; int e,f,g; long int h; printf("The addresses are:\n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x \n %0x", &a,&b,&c,&d,&e,&f,&g,&h); return 0; } ผลที่ได้คือ โปรดสังเกตว่าระหว่างทุก int แอดเดรสจะมีความแตกต่าง 4 ไบต์ อย่างไรก็ตามระหว่าง int สุดท้ายและ int ยาวมีความแตกต่าง 12 ไบต์: …
26 c  memory  pointers 

5
เป็นไปได้ไหมที่จะอ่านหน่วยความจำจากโปรแกรมอื่นโดยการจัดสรรพื้นที่ว่างทั้งหมดบนระบบ?
ในทางทฤษฎีถ้าฉันจะสร้างโปรแกรมที่จัดสรรหน่วยความจำที่ไม่ได้ใช้ทั้งหมดในระบบและยังคงร้องขอหน่วยความจำมากขึ้นเรื่อย ๆ เนื่องจากแอปพลิเคชันอื่น ๆ ปล่อยหน่วยความจำที่พวกเขาไม่ต้องการอีกต่อไป ? หรือระบบนี้ได้รับการปกป้องด้วยระบบปฏิบัติการสมัยใหม่หรือไม่? ฉันไม่มีแอปพลิเคชันที่ใช้งานได้สำหรับสิ่งนี้ฉันแค่อยากรู้ ฉันรู้ว่ามีปัญหาบางอย่างในการจัดสรร "หน่วยความจำที่มีอยู่ทั้งหมด" ในชีวิตจริง แก้ไข: เพื่อชี้แจงฉันขอเฉพาะเกี่ยวกับหน่วยความจำ "ปล่อยตัว" ไม่เข้าถึงหน่วยความจำที่ปัจจุบันจัดสรรโดยแอปพลิเคชันอื่น

1
ปริมาณการใช้หน่วยความจำ Redux [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา กรอบ Redux สนับสนุนกระบวนทัศน์ของฟังก์ชันบริสุทธิ์ / ไม่เปลี่ยนรูปแบบซึ่งส่งเสริมการสร้างสถานะใหม่จากสถานะก่อนหน้าในแง่ของการกระทำในปัจจุบัน การบังคับใช้กระบวนทัศน์นี้ไม่อาจปฏิเสธได้ ข้อกังวลหลักของฉันคือเนื่องจาก Redux reducers ส่งคืนสถานะใหม่ที่สดใหม่จากสถานะก่อนหน้าสำหรับการกระทำทุกครั้งที่เรียกใช้หน่วยความจำขนาดใหญ่ที่ระบายออก (เพื่อไม่ให้สับสนกับการรั่วไหลของหน่วยความจำ) จะกลายเป็นเรื่องธรรมดา . เมื่อพิจารณาว่าแอปพลิเคชัน Javascript ทำงานตามปกติในเบราว์เซอร์ในอุปกรณ์ของผู้ใช้โดยเฉลี่ยซึ่งอาจใช้งานแอพพลิเคชั่นเฉพาะอุปกรณ์อื่น ๆ รวมถึงแท็บและหน้าต่างเบราว์เซอร์อื่น ๆ อีกมากมายความจำเป็นในการอนุรักษ์หน่วยความจำ มีใครเปรียบเทียบการใช้หน่วยความจำของแอพพลิเคชัน Redux กับสถาปัตยกรรม Flux แบบดั้งเดิมบ้างไหม ถ้าเป็นเช่นนั้นพวกเขาสามารถแบ่งปันสิ่งที่ค้นพบของพวกเขา?

7
การสาธิตการรวบรวมขยะเร็วกว่าการจัดการหน่วยความจำด้วยตนเอง
ฉันได้อ่านในหลาย ๆ ที่ (heck ฉันยังเขียนด้วยตัวเอง) ว่าการเก็บขยะอาจทำได้เร็วกว่าการจัดการหน่วยความจำด้วยตนเอง อย่างไรก็ตามการแสดงนั้นยากกว่าที่จะบอก ฉันไม่เคยเห็นรหัสใด ๆ ที่แสดงให้เห็นถึงผลกระทบจากการกระทำนี้ ใครบ้างมีรหัส (หรือรู้ว่าฉันสามารถหาได้ที่ไหน) ที่แสดงถึงข้อได้เปรียบด้านประสิทธิภาพนี้?

5
การดีบักหน่วยความจำเสียหาย
ก่อนอื่นฉันรู้ว่านี่ไม่ใช่คำถามสไตล์คำถาม & คำตอบที่สมบูรณ์แบบด้วยคำตอบที่สมบูรณ์ แต่ฉันไม่สามารถคิดถ้อยคำใด ๆ ที่จะทำให้มันดีขึ้น ฉันไม่คิดว่าจะมีวิธีแก้ปัญหาที่สมบูรณ์สำหรับเรื่องนี้และนี่คือหนึ่งในเหตุผลที่ฉันโพสต์ไว้ที่นี่แทนที่จะเป็น Stack Overflow เมื่อเดือนที่แล้วฉันได้เขียนรหัสเซิร์ฟเวอร์ (mmorpg) ที่ค่อนข้างเก่าเพื่อให้ทันสมัยและง่ายต่อการขยาย / ดัดแปลง ฉันเริ่มต้นด้วยส่วนเครือข่ายและใช้ห้องสมุดบุคคลที่สาม (libevent) เพื่อจัดการสิ่งต่าง ๆ สำหรับฉัน ด้วยการเปลี่ยนแฟคตอริ่งและการเปลี่ยนรหัสใหม่ฉันได้แนะนำคอร์รัปชั่นหน่วยความจำบางแห่งและฉันพยายามดิ้นรนหาว่ามันเกิดอะไรขึ้น ฉันดูเหมือนจะไม่สามารถทำซ้ำได้อย่างน่าเชื่อถือบนสภาพแวดล้อมการพัฒนา / การทดสอบของฉันแม้ว่าจะใช้บอตแบบดั้งเดิมเพื่อจำลองการโหลดบางอย่างฉันจะไม่เกิดข้อผิดพลาดอีกต่อไป (ฉันแก้ไขปัญหาเรื่องเสรีภาพซึ่งทำให้บางสิ่ง) ฉันได้ลองแล้ว: Valgrinding นรกออกมาจากมัน - ไม่มีการเขียนที่ไม่ถูกต้องจนกว่าสิ่งที่จะเกิดปัญหา (ซึ่งอาจใช้เวลา 1+ วันในการผลิต .. หรือเพียงหนึ่งชั่วโมง) ซึ่งทำให้ฉันงงงันจริง ๆ ในบางครั้งมันจะเข้าถึงหน่วยความจำที่ไม่ถูกต้อง โอกาส? (มีวิธีการ "กระจาย" ช่วงที่อยู่หรือไม่) เครื่องมือวิเคราะห์รหัส ได้แก่ ความครอบคลุมและ cppcheck ในขณะที่พวกเขาชี้ให้เห็นถึง .. ความร้ายกาจและคดีขอบในรหัสไม่มีอะไรร้ายแรง บันทึกกระบวนการจนกว่ามันจะล้มเหลวด้วย gdb …
23 c++  debugging  memory 

5
เหตุใด IIS จึงใช้ค่าเริ่มต้นในการรีไซเคิลกลุ่มแอพลิเคชันทุก ๆ 1740 นาที
เหตุใด IIS จึงเป็นค่าเริ่มต้นให้รีไซเคิลกลุ่มแอปหลังจากเวลาที่กำหนด มีเหตุผลบางอย่างนอกเหนือจากเว็บแอปพลิเคชันส่วนใหญ่ที่ไม่ได้จัดการหน่วยความจำอย่างรอบคอบหรือไม่? เนื่องจากคุณกำลังจัดการหน่วยความจำของแอปพลิเคชันของคุณอย่างถูกต้องมีความปลอดภัยที่จะไปข้างหน้าและปิดนี้ อะไรคือศักยภาพที่ลดลงประโยชน์ที่ได้รับจากการปิดการรีไซเคิล
22 asp.net  memory  iis 

2
ขนาดของ stack และ heap ถูก จำกัด โดยระบบปฏิบัติการอย่างไร
หมายเหตุ : หากคุณต้องการพิจารณาระบบปฏิบัติการเฉพาะเพื่อให้สามารถตอบได้โปรดพิจารณา Linux เมื่อใดก็ตามที่ฉันเรียกใช้โปรแกรมก็จะได้รับพื้นที่หน่วยความจำเสมือนที่จะทำงานโดยมีพื้นที่สำหรับสแต็กและอีกหนึ่งสำหรับฮีปของมัน คำถามที่ 1 : ทำสแต็กและฮีปมีขีด จำกัด ขนาดคงที่ (เช่น 2 กิกะไบต์แต่ละตัว) หรือเป็นขีด จำกัด แบบไดนามิกนี้เปลี่ยนไปตามการจัดสรรหน่วยความจำในระหว่างการดำเนินการของโปรแกรม (เช่น 4 กิกะไบต์ทั้งหมดที่จะใช้โดย ทั้งสองอย่างดังนั้นหากโปรแกรมใช้สแต็คเพียงอย่างเดียวมันจะสามารถมีสแต็คที่มี 4 กิกะไบต์) คำถามที่ 2 : กำหนดวงเงินอย่างไร มันเป็นหน่วยความจำแรมทั้งหมดที่มีอยู่ไหม? คำถามที่ 3 : ส่วนข้อความ (รหัส) และส่วนข้อมูลมีข้อ จำกัด อย่างไร
21 linux  memory  stack  heap 

3
วิธีการอย่างมืออาชีพในการสร้างปัญหาใหญ่โดยไม่ต้องกรอกอาร์เรย์ขนาดใหญ่: C ++ หน่วยความจำฟรีจากส่วนหนึ่งของอาร์เรย์
ฉันกำลังพัฒนาแบบจำลองทางฟิสิกส์และเนื่องจากฉันค่อนข้างใหม่กับการเขียนโปรแกรมฉันยังคงพบปัญหาเมื่อผลิตโปรแกรมขนาดใหญ่ ฉันรู้เกี่ยวกับการจัดสรรและลบหน่วยความจำแบบไดนามิก (ใหม่ / ลบ ฯลฯ ) แต่ฉันต้องการวิธีที่ดีกว่าในการจัดโครงสร้างโปรแกรม สมมติว่าฉันกำลังจำลองการทดสอบที่ใช้งานมาสองสามวันด้วยอัตราการสุ่มตัวอย่างที่ใหญ่มาก ฉันต้องการจำลองตัวอย่างเป็นพันล้านตัวอย่าง ในฐานะเวอร์ชั่นที่เรียบง่ายที่สุดเราจะกล่าวว่าโปรแกรมใช้แรงดันไฟฟ้า V [i] และรวมเข้าด้วยกันเป็นห้า: ie NewV [0] = V [0] + V [1] + V [2] + V [3] + V [4] NewV [1] = V [1] + V [2] + V [3] + V [4] + V [5] ดังนั้น …
20 c++  data  memory  array  dynamic 

5
พวกเขาดีบักข้อผิดพลาดการแบ่งกลุ่มก่อนหน่วยความจำที่ได้รับการป้องกันอย่างไร
ตอนนี้เมื่อฉันทำผิดพลาดในการเขียนโปรแกรมด้วยตัวชี้ใน C ฉันได้รับข้อผิดพลาดในการแบ่งเซ็กเมนต์ที่ดีโปรแกรมของฉันทำงานล้มเหลวและดีบักเกอร์สามารถบอกได้ว่ามันผิดพลาดที่ไหน พวกเขาทำอย่างนั้นได้อย่างไรในเวลาที่การป้องกันหน่วยความจำไม่พร้อมใช้งาน ฉันสามารถเห็นโปรแกรมเมอร์ DOS เล่นซอและกระแทกทั้งระบบปฏิบัติการเมื่อเขาทำผิดพลาด การจำลองเสมือนไม่พร้อมใช้งานดังนั้นสิ่งที่เขาทำได้คือรีสตาร์ทและลองอีกครั้ง มันเป็นอย่างนั้นจริงเหรอ?

2
ทุกคนสามารถอธิบายการเป็นตัวแทนของโฟลตในหน่วยความจำได้หรือไม่?
นี่ไม่ใช่คำถามซ้ำซ้อนเมื่อฉันอ่านคำถามก่อนหน้า how float values are stored in the memoryทุกคนสามารถช่วยในการทำความเข้าใจ ข้อสงสัยของฉันอยู่ที่นี่ค่าลอยมี ' .'( for example 3.45) วิธี'.'จะแสดงในหน่วยความจำ? ใครช่วยอธิบายแผนที่ด้วยฉันได้ไหม?

4
การแก้ไขปัญหาการรั่วไหลของหน่วยความจำมีความสำคัญอย่างไร
ฉันพบโดย Valgring ว่าบางโปรแกรม GTK + รั่วหน่วยความจำ การแก้ไขรอยรั่วนั้นสำคัญขนาดไหน? ฉันหมายถึงบ่อยครั้งที่โปรแกรมเหล่านั้นทำงานได้ดีมาก แต่ในทางกลับกันเราไม่สามารถมั่นใจได้ว่าหากต้องการคัดลอกส่วนหนึ่งของรหัสที่รั่วไปยังโปรแกรมอื่น และฉันไม่แน่ใจว่าแนวคิดของ GTK + - โปรแกรมทำงานเร็วหรือไม่ดังนั้นจึงมีการรั่วไหล ดังนั้นหากบางครั้งฉันพบว่าหน่วยความจำรั่วในโปรแกรมโอเพนซอร์ซฉันควรแก้ไขหรือมีปัญหาเรื่องประสิทธิภาพตัวอย่างดังนั้นความคิดดั้งเดิมของโปรแกรมเมอร์คือการเขียนโค้ดรั่วเล็ก ๆ
19 c  memory 

5
CPU / คอร์หลายตัวสามารถเข้าถึง RAM เดียวกันได้หรือไม่
นี่คือสิ่งที่ฉันคิดว่าจะเกิดขึ้น: หากสองคอร์พยายามเข้าถึงที่อยู่เดียวกันใน RAM ใครจะต้องรอให้อีกคนหนึ่งเข้าถึง RAM สองเวลานั้นแต่ละคอร์จะพยายามที่จะเข้าถึงที่อยู่เดียวกันพวกเขาก็อาจจะยังคงมี RAM ที่เก็บไว้ชั่วคราวเพื่อให้พวกเขาสามารถเข้าถึงตนแคชพร้อมกัน หากสองคอร์พยายามเข้าถึงที่อยู่ที่แตกต่างกันใน RAM เดียวกันจะต้องรอให้อีกสองเครื่องเข้าถึง RAM ในคำอื่น ๆ ฉันจะจินตนาการว่าสำหรับงานเขียนโปรแกรมแบบเข้มข้นของ RAM การประมวลผลหลายตัวไม่ได้ช่วยอะไรมากนอกจากว่ามันจะเกี่ยวข้องกับการอ่านจากที่อยู่เดียวกันใน RAM หลายครั้งต่อหนึ่งคอร์ ดังนั้นซีพียูหลายคอร์ / สามารถเข้าถึง RAM เดียวกันพร้อมกันหรือสิ่งที่ฉันพูดถูกต้องหรือไม่

6
คำศัพท์ 24-bits
มีคำศัพท์สำหรับจำนวนเต็ม 24- บิต (3 ไบต์) หรือไม่? ฉันรู้ว่านับบิตที่ผิดปกติ (เช่น"nibble"หรือ"nybble"สำหรับ 4 บิต) มีชื่อและมี 24 บิตในทั้งวิดีโอและเทคโนโลยีเสียงเช่นเป็นเรื่องธรรมดามาก

3
เมื่อฉันสร้างวัตถุจะมีการจัดสรรหน่วยความจำใหม่ให้กับทั้งเขตข้อมูลอินสแตนซ์และวิธีการหรือเฉพาะกับเขตข้อมูลอินสแตนซ์
ฉันมีคลาสต่อไปนี้ class Student{ int rollNumber; int marks; public void setResult(int rollNumber, int marks){ this.rollNumber=rollNumber; this.marks=marks; } public void displayResult(){ System.out.println("Roll Number= "+this.rollNumber+" Marks= "+this.marks); } } ตอนนี้ฉันสร้างวัตถุสองประเภทที่เป็นนักเรียนดังนี้ Student s1=new Student(); Student s2=new Student(); ตอนนี้มีการจัดสรรหน่วยความจำสองชุดที่แตกต่างกันสำหรับฟิลด์อินสแตนซ์ ตอนนี้คำถามของฉันคือการจัดสรรหน่วยความจำสำหรับวิธีการ ( setResultและdisplayResult) สองครั้งหรือหนึ่งครั้ง? โปรดดูรูปต่อไปนี้และคุณสามารถช่วยฉันบอกว่ารูปใดให้ข้อมูลที่ถูกต้อง

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