У Remix розгорніть контракт або виконайте транзакцію.
Перейдіть до списку транзакцій (на вкладці Deploy & Run
») і клацніть піктограму «помилка» поруч із транзакцією, яка вас цікавить. Це запустить Debugger.
Увійшовши в налагоджувач:
Навігація: Використовуйте покрокові елементи керування для навігації по кожній операції транзакції. Ви можете переходити, входити або виходити з функцій і переходити до певного кроку.
Панель деталей: на цій панелі відображатимуться деталі коду операції, поточний крок виконання та інші відповідні деталі.
Локальні параметри Solidity: відображає локальні змінні Solidity та їхні поточні значення.
Стан: показує зміни стану контракту. Це чудове місце, щоб визначити несподівані зміни, які можуть спричинити підвищення плати за газ.
Стек викликів: ілюструє поточний стек викликів функцій. Корисно для розуміння поточного контексту виконання.
Зміни пам’яті: висвітлює зміни в пам’яті під час виконання. Корисно для визначення потенційних областей оптимізації газу.
Налагоджувач призначений не лише для виправлення помилок; це також чудовий інструмент для профілювання використання газу за вашим контрактом. Ось як ви можете отримати від цього максимальну користь:
Визначте кроки високого рівня газу: під час проходження коду контролюйте використання газу на кожному кроці. Високі кроки газу можуть бути цілями оптимізації.
Контроль дій зі сховищем: надмірні зміни сховища, особливо ті, які не delete
, можуть пожирати газ.
Виклики функцій: виклики зовнішніх функцій, особливо для інших контрактів, можуть бути дорогими. Переконайтеся, що вони необхідні.
Давайте використаємо Remix Debugger із простим контрактом:
Solidity
pragma solidity ^0.8.9;
контракт GasProfiler {
uint256 public count;
функція setCount(uint256 _count) public {
for (uint256 i = 0; i < _count; i++) {
count += i;
}
}
}
Розгортайте контракт і взаємодійте з ним у Remix.
Використовуйте налагоджувач для функції setCount
і визначте газоінтенсивні операції. Тут операція циклу споживатиме більше газу, оскільки _count
збільшується.
Розуміти Remix Debugger і отримати від нього максимальну користь — це навичка, яка допоможе не лише діагностувати проблеми, але й удосконалити ваш контракт, щоб він був ефективним. Покроково переглядаючи свій код, ви можете помітити неефективність, яка може бути неочевидною на вищому рівні.
У Remix розгорніть контракт або виконайте транзакцію.
Перейдіть до списку транзакцій (на вкладці Deploy & Run
») і клацніть піктограму «помилка» поруч із транзакцією, яка вас цікавить. Це запустить Debugger.
Увійшовши в налагоджувач:
Навігація: Використовуйте покрокові елементи керування для навігації по кожній операції транзакції. Ви можете переходити, входити або виходити з функцій і переходити до певного кроку.
Панель деталей: на цій панелі відображатимуться деталі коду операції, поточний крок виконання та інші відповідні деталі.
Локальні параметри Solidity: відображає локальні змінні Solidity та їхні поточні значення.
Стан: показує зміни стану контракту. Це чудове місце, щоб визначити несподівані зміни, які можуть спричинити підвищення плати за газ.
Стек викликів: ілюструє поточний стек викликів функцій. Корисно для розуміння поточного контексту виконання.
Зміни пам’яті: висвітлює зміни в пам’яті під час виконання. Корисно для визначення потенційних областей оптимізації газу.
Налагоджувач призначений не лише для виправлення помилок; це також чудовий інструмент для профілювання використання газу за вашим контрактом. Ось як ви можете отримати від цього максимальну користь:
Визначте кроки високого рівня газу: під час проходження коду контролюйте використання газу на кожному кроці. Високі кроки газу можуть бути цілями оптимізації.
Контроль дій зі сховищем: надмірні зміни сховища, особливо ті, які не delete
, можуть пожирати газ.
Виклики функцій: виклики зовнішніх функцій, особливо для інших контрактів, можуть бути дорогими. Переконайтеся, що вони необхідні.
Давайте використаємо Remix Debugger із простим контрактом:
Solidity
pragma solidity ^0.8.9;
контракт GasProfiler {
uint256 public count;
функція setCount(uint256 _count) public {
for (uint256 i = 0; i < _count; i++) {
count += i;
}
}
}
Розгортайте контракт і взаємодійте з ним у Remix.
Використовуйте налагоджувач для функції setCount
і визначте газоінтенсивні операції. Тут операція циклу споживатиме більше газу, оскільки _count
збільшується.
Розуміти Remix Debugger і отримати від нього максимальну користь — це навичка, яка допоможе не лише діагностувати проблеми, але й удосконалити ваш контракт, щоб він був ефективним. Покроково переглядаючи свій код, ви можете помітити неефективність, яка може бути неочевидною на вищому рівні.