ฉันเห็นคำว่า"บัฟเฟอร์"ทุกที่ แต่ฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร
- ใครช่วยอธิบายสิ่งที่บัฟเฟอร์ในภาษาของคนธรรมดา ?
- จะใช้เมื่อไหร่?
- มันใช้งานอย่างไร?
ฉันเห็นคำว่า"บัฟเฟอร์"ทุกที่ แต่ฉันไม่สามารถเข้าใจได้ว่ามันคืออะไร
คำตอบ:
ลองนึกภาพว่าคุณกำลังกินขนมจากชาม คุณทานชิ้นเดียวเป็นประจำ เพื่อป้องกันไม่ให้ชามหมดบางคนอาจเติมชามก่อนที่มันจะว่างเปล่าดังนั้นเมื่อคุณต้องการที่จะเอาชิ้นส่วนอื่นมีขนมในชาม
ชามทำหน้าที่เป็นบัฟเฟอร์ระหว่างคุณและถุงขนม
หากคุณกำลังดูภาพยนตร์ออนไลน์บริการบนเว็บจะดาวน์โหลดอย่างต่อเนื่องในอีก 5 นาทีหรือมากกว่านั้นในบัฟเฟอร์วิธีที่คอมพิวเตอร์ของคุณไม่จำเป็นต้องดาวน์โหลดภาพยนตร์ในขณะที่คุณกำลังดูอยู่ (ซึ่งจะทำให้แขวน)
คำว่า "buffer" เป็นคำทั่วไปมากและไม่เฉพาะเจาะจงกับ IT หรือ CS เป็นสถานที่เก็บสิ่งชั่วคราวเพื่อลดความแตกต่างระหว่างความเร็วอินพุตและความเร็วเอาต์พุต ในขณะที่ผู้ผลิตนั้นเร็วกว่าผู้บริโภค แต่ผู้ผลิตสามารถเก็บเอาท์พุทในบัฟเฟอร์ต่อไปได้ เมื่อผู้ใช้บริการเร่งความเร็วก็สามารถอ่านได้จากบัฟเฟอร์ บัฟเฟอร์อยู่ตรงกลางเพื่อเชื่อมช่องว่าง
หากคุณเฉลี่ยคำจำกัดความที่http://en.wiktionary.org/wiki/bufferฉันคิดว่าคุณจะได้รับความคิด
เพื่อพิสูจน์ว่าเราทำจริง ๆ "ต้องเดิน 10 ไมล์คิดว่าหิมะทุกวันเพื่อไปโรงเรียน" ดูคู่มือการโทรด้วยเสียง TOPS-10 ปริมาณ 1ส่วน 11.9 "การใช้บัฟเฟอร์ I / O" ที่คั่นหน้า 11-24 อย่าอ่านว่าคุณกำลังฝันร้าย
บัฟเฟอร์เป็นหน่วยความจำอันหนึ่งที่ใช้เก็บข้อมูล โดยทั่วไปแล้วมันมักจะเป็นหน่วยความจำหยดเดียวที่โหลดในการทำงานครั้งเดียวและจากนั้นจึงเทลงในตัวอย่าง "ชามขนม" ของ Perchik อย่างน้อยหนึ่งอย่าง ตัวอย่างเช่นในโปรแกรม C คุณอาจมี:
#define BUFSIZE 1024
char buffer[BUFSIZE];
size_t len = ;
// ... later
while((len=read(STDIN, &buffer, BUFSIZE)) > 0)
write(STDOUT, buffer, len);
... ซึ่งเป็นรุ่นที่น้อยที่สุดของซีพี (1) ในที่นี้จะใช้อาร์เรย์บัฟเฟอร์เพื่อจัดเก็บข้อมูลที่อ่านโดยอ่าน (2)จนกว่าจะถูกเขียน จากนั้นบัฟเฟอร์จะถูกใช้ซ้ำ
มีโครงร่างบัฟเฟอร์ที่ซับซ้อนกว่าที่ใช้ตัวอย่างเช่นบัฟเฟอร์แบบวงกลมที่ใช้จำนวนบัฟเฟอร์ที่แน่นอนจำนวนหนึ่งหลังจากนั้นอีกหนึ่งครั้ง เมื่อบัฟเฟอร์เต็มแล้วดัชนี "ล้อมรอบ" เพื่อให้บัฟเฟอร์แรกถูกใช้ซ้ำ
บัฟเฟอร์หมายถึง 'ที่เก็บข้อมูลชั่วคราว' บัฟเฟอร์มีความสำคัญในการคำนวณเนื่องจากอุปกรณ์และระบบที่เชื่อมต่อระหว่างกันนั้นไม่ค่อยเชื่อมต่อกันดังนั้นเมื่อข้อมูลถูกส่งจากระบบหนึ่งไปยังอีกระบบหนึ่งจะต้องรอจนกว่าระบบผู้รับจะพร้อมใช้งาน
จริงๆแล้วมันจะขึ้นอยู่กับบริบทในแต่ละกรณีเนื่องจากไม่มีคำจำกัดความใด ๆ - แต่การพูดโดยทั่วไปแล้วบัฟเฟอร์เป็นสถานที่สำหรับเก็บสิ่งชั่วคราว การเปรียบเทียบโลกแห่งความจริงที่ดีที่สุดที่ฉันสามารถนึกได้ก็คือบริเวณรอ ตัวอย่างง่ายๆในการคำนวณคือเมื่อบัฟเฟอร์อ้างถึงส่วนหนึ่งของ RAM ที่ใช้สำหรับการจัดเก็บข้อมูลชั่วคราว
บัฟเฟอร์เป็นตัวยึดตำแหน่งชั่วคราว (ตัวแปรในภาษาการเขียนโปรแกรมจำนวนมาก) ในหน่วยความจำ (ram / ดิสก์) ซึ่งข้อมูลสามารถถูกทิ้งแล้วประมวลผลได้
มีข้อดีหลายประการของการบัฟเฟอร์เช่นเดียวกับที่อนุญาตให้สิ่งต่าง ๆ เกิดขึ้นพร้อมกันปรับปรุงประสิทธิภาพของ IO และอื่น ๆ
นอกจากนี้ยังมีข้อเสียมากมายหากไม่ได้ใช้อย่างถูกต้องเช่นบัฟเฟอร์ล้น, บัฟเฟอร์อันเดอร์โฟล์ ฯลฯ
C ตัวอย่างของบัฟเฟอร์ตัวอักษร
ถ่าน * buffer1 = calloc (5, sizeof (ถ่าน));
ถ่าน * buffer2 = calloc (15, sizeof (ถ่าน));
บัฟเฟอร์คือพื้นที่ข้อมูลที่ใช้ร่วมกันโดยอุปกรณ์ฮาร์ดแวร์หรือกระบวนการโปรแกรมที่ทำงานด้วยความเร็วที่แตกต่างกันหรือมีลำดับความสำคัญที่แตกต่างกัน บัฟเฟอร์ช่วยให้แต่ละอุปกรณ์หรือกระบวนการทำงานโดยไม่ต้องถูกควบคุมโดยอุปกรณ์อื่น เพื่อให้บัฟเฟอร์มีประสิทธิภาพขนาดของบัฟเฟอร์และอัลกอริทึมสำหรับการย้ายข้อมูลเข้าและออกจากบัฟเฟอร์
บัฟเฟอร์เป็น "จุดกึ่งกลางการถือครอง" แต่มีอยู่ไม่มากนักที่จะเร่งความเร็วของกิจกรรมเพื่อสนับสนุนการประสานงานของกิจกรรมที่แยกกัน
คำนี้ใช้ทั้งในการเขียนโปรแกรมและในฮาร์ดแวร์ ในการเขียนโปรแกรมการบัฟเฟอร์บางครั้งแสดงถึงความจำเป็นในการคัดกรองข้อมูลจากจุดประสงค์สุดท้ายเพื่อให้สามารถแก้ไขหรือประมวลผลก่อนที่จะย้ายไปยังไฟล์หรือฐานข้อมูลปกติ
บัฟเฟอร์เป็นตัวยึดตำแหน่งชั่วคราว (ตัวแปรในภาษาการเขียนโปรแกรมจำนวนมาก) ในหน่วยความจำ (ram / ดิสก์) ซึ่งข้อมูลสามารถถูกทิ้งแล้วประมวลผลได้
คำว่า "buffer" เป็นคำทั่วไปมากและไม่เฉพาะเจาะจงกับ IT หรือ CS เป็นสถานที่เก็บสิ่งชั่วคราวเพื่อลดความแตกต่างระหว่างความเร็วอินพุตและความเร็วเอาต์พุต ในขณะที่ผู้ผลิตนั้นเร็วกว่าผู้บริโภค แต่ผู้ผลิตสามารถเก็บเอาท์พุทในบัฟเฟอร์ต่อไปได้ เมื่อผู้ใช้บริการเร่งความเร็วก็สามารถอ่านได้จากบัฟเฟอร์ บัฟเฟอร์อยู่ตรงกลางเพื่อเชื่อมช่องว่าง