ใน Remix ให้ปรับใช้สัญญาหรือดำเนินธุรกรรม
ไปที่รายการธุรกรรม (ในแท็บ Deploy & Run
) และคลิกไอคอน "ข้อบกพร่อง" ถัดจากธุรกรรมที่คุณสนใจ นี่จะเป็นการเปิดตัวดีบักเกอร์
เมื่อคุณเข้าไปในดีบักเกอร์แล้ว:
การนำทาง: ใช้การควบคุมขั้นตอนเพื่อนำทางผ่านการดำเนินการแต่ละรายการของธุรกรรมของคุณ คุณสามารถก้าวข้าม เข้า หรือออกจากฟังก์ชัน และข้ามไปยังขั้นตอนใดขั้นตอนหนึ่งได้
แผงรายละเอียด: แผงนี้จะแสดงรายละเอียด opcode ขั้นตอนการดำเนินการปัจจุบัน และรายละเอียดอื่นๆ ที่เกี่ยวข้อง
Solidity Locals: แสดงตัวแปร Solidity ภายในเครื่องและค่าปัจจุบัน
สถานะ: แสดงการเปลี่ยนแปลงสถานะของสัญญา เป็นสถานที่ที่ดีเยี่ยมในการระบุการเปลี่ยนแปลงที่ไม่คาดคิด ซึ่งอาจทำให้ค่าธรรมเนียมน้ำมันสูงขึ้น
Call Stack: แสดงการเรียกฟังก์ชันปัจจุบัน มีประโยชน์สำหรับการทำความเข้าใจบริบทการดำเนินการในปัจจุบัน
การเปลี่ยนแปลงพื้นที่เก็บข้อมูล: เน้นการเปลี่ยนแปลงพื้นที่เก็บข้อมูลระหว่างการดำเนินการ มีประโยชน์สำหรับการระบุพื้นที่ที่เป็นไปได้ของการเพิ่มประสิทธิภาพก๊าซ
ดีบักเกอร์ไม่ได้มีไว้สำหรับแก้ไขข้อบกพร่องเท่านั้น แต่ยังเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทำโปรไฟล์การใช้ก๊าซตามสัญญาของคุณ ต่อไปนี้คือวิธีที่คุณจะได้รับประโยชน์สูงสุด:
ระบุขั้นตอนที่มีแก๊สสูง: เมื่อคุณทำตามขั้นตอนโค้ด ให้ตรวจสอบการใช้แก๊สในแต่ละขั้นตอน ขั้นตอนของก๊าซที่สูงอาจเป็นเป้าหมายในการเพิ่มประสิทธิภาพ
ตรวจสอบการดำเนินการด้านพื้นที่เก็บข้อมูล: การเปลี่ยนแปลงพื้นที่จัดเก็บข้อมูลที่มากเกินไป โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงที่ไม่สามารถ delete
อาจเกิดจากปัญหาการใช้แก๊ส
การเรียกใช้ฟังก์ชัน: การเรียกใช้ฟังก์ชันภายนอก โดยเฉพาะสัญญาอื่นๆ อาจมีราคาแพง ตรวจสอบให้แน่ใจว่าจำเป็น
มาใช้ Remix Debugger ด้วยสัญญาง่ายๆ:
ความแข็งแกร่ง
ความแข็งแกร่งของแพรกมา ^0.8.9;
สัญญา GasProfiler {
uint256 จำนวนสาธารณะ;
ฟังก์ชั่น setCount(uint256 _count) public {
สำหรับ (uint256 i = 0; i < _count; i++) {
count += i;
}
}
}
ปรับใช้และโต้ตอบกับสัญญาใน Remix
ใช้ดีบักเกอร์บนฟังก์ชัน setCount
และระบุการดำเนินการที่ใช้แก๊สมาก ในที่นี้ การดำเนินการวนซ้ำจะใช้ก๊าซมากขึ้นเมื่อ _count
เพิ่มขึ้น
การทำความเข้าใจและการใช้ประโยชน์สูงสุดจาก Remix Debugger เป็นทักษะที่ไม่เพียงแต่ช่วยในการวินิจฉัยปัญหาเท่านั้น แต่ยังช่วยปรับปรุงสัญญาของคุณให้ประหยัดน้ำมันอีกด้วย โดยการก้าวผ่านโค้ดของคุณ คุณสามารถมองเห็นความไร้ประสิทธิภาพที่อาจไม่ปรากฏชัดเจนในระดับที่สูงกว่า
ใน Remix ให้ปรับใช้สัญญาหรือดำเนินธุรกรรม
ไปที่รายการธุรกรรม (ในแท็บ Deploy & Run
) และคลิกไอคอน "ข้อบกพร่อง" ถัดจากธุรกรรมที่คุณสนใจ นี่จะเป็นการเปิดตัวดีบักเกอร์
เมื่อคุณเข้าไปในดีบักเกอร์แล้ว:
การนำทาง: ใช้การควบคุมขั้นตอนเพื่อนำทางผ่านการดำเนินการแต่ละรายการของธุรกรรมของคุณ คุณสามารถก้าวข้าม เข้า หรือออกจากฟังก์ชัน และข้ามไปยังขั้นตอนใดขั้นตอนหนึ่งได้
แผงรายละเอียด: แผงนี้จะแสดงรายละเอียด opcode ขั้นตอนการดำเนินการปัจจุบัน และรายละเอียดอื่นๆ ที่เกี่ยวข้อง
Solidity Locals: แสดงตัวแปร Solidity ภายในเครื่องและค่าปัจจุบัน
สถานะ: แสดงการเปลี่ยนแปลงสถานะของสัญญา เป็นสถานที่ที่ดีเยี่ยมในการระบุการเปลี่ยนแปลงที่ไม่คาดคิด ซึ่งอาจทำให้ค่าธรรมเนียมน้ำมันสูงขึ้น
Call Stack: แสดงการเรียกฟังก์ชันปัจจุบัน มีประโยชน์สำหรับการทำความเข้าใจบริบทการดำเนินการในปัจจุบัน
การเปลี่ยนแปลงพื้นที่เก็บข้อมูล: เน้นการเปลี่ยนแปลงพื้นที่เก็บข้อมูลระหว่างการดำเนินการ มีประโยชน์สำหรับการระบุพื้นที่ที่เป็นไปได้ของการเพิ่มประสิทธิภาพก๊าซ
ดีบักเกอร์ไม่ได้มีไว้สำหรับแก้ไขข้อบกพร่องเท่านั้น แต่ยังเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการทำโปรไฟล์การใช้ก๊าซตามสัญญาของคุณ ต่อไปนี้คือวิธีที่คุณจะได้รับประโยชน์สูงสุด:
ระบุขั้นตอนที่มีแก๊สสูง: เมื่อคุณทำตามขั้นตอนโค้ด ให้ตรวจสอบการใช้แก๊สในแต่ละขั้นตอน ขั้นตอนของก๊าซที่สูงอาจเป็นเป้าหมายในการเพิ่มประสิทธิภาพ
ตรวจสอบการดำเนินการด้านพื้นที่เก็บข้อมูล: การเปลี่ยนแปลงพื้นที่จัดเก็บข้อมูลที่มากเกินไป โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงที่ไม่สามารถ delete
อาจเกิดจากปัญหาการใช้แก๊ส
การเรียกใช้ฟังก์ชัน: การเรียกใช้ฟังก์ชันภายนอก โดยเฉพาะสัญญาอื่นๆ อาจมีราคาแพง ตรวจสอบให้แน่ใจว่าจำเป็น
มาใช้ Remix Debugger ด้วยสัญญาง่ายๆ:
ความแข็งแกร่ง
ความแข็งแกร่งของแพรกมา ^0.8.9;
สัญญา GasProfiler {
uint256 จำนวนสาธารณะ;
ฟังก์ชั่น setCount(uint256 _count) public {
สำหรับ (uint256 i = 0; i < _count; i++) {
count += i;
}
}
}
ปรับใช้และโต้ตอบกับสัญญาใน Remix
ใช้ดีบักเกอร์บนฟังก์ชัน setCount
และระบุการดำเนินการที่ใช้แก๊สมาก ในที่นี้ การดำเนินการวนซ้ำจะใช้ก๊าซมากขึ้นเมื่อ _count
เพิ่มขึ้น
การทำความเข้าใจและการใช้ประโยชน์สูงสุดจาก Remix Debugger เป็นทักษะที่ไม่เพียงแต่ช่วยในการวินิจฉัยปัญหาเท่านั้น แต่ยังช่วยปรับปรุงสัญญาของคุณให้ประหยัดน้ำมันอีกด้วย โดยการก้าวผ่านโค้ดของคุณ คุณสามารถมองเห็นความไร้ประสิทธิภาพที่อาจไม่ปรากฏชัดเจนในระดับที่สูงกว่า