Solidity 가스비 절약(2)
-
Solidity 기초 - 5 (가스비)
가스비 함수를 실행하는 데에 필요한 가스는 그 함수의 로직이 얼마나 복잡한지에 따라 달라집니다. 각각의 연산은 소모되는 가스 비용이 있고, 그 연산을 수행하는 데에 소모되는 컴퓨팅 자원의 양이 비용을 결정합니다. Solidity의 로직은 곧 비용와 직결되기 때문에 코드 최적화에 신경써야할 것입니다. view 함수를 사용해 가스 절약 view 함수는 사용자에 의해 외부에서 호출되었을 때 가스를 소모하지 않습니다. view 함수는 블록체인 상에서 실제로 어떤것도 수정하지 않고 데이터를 읽기만 하기 때문입니다. 이것은 실제로 로컬 노드에게 질의만 날릴 뿐, 블록체인에 트랜잭션을 생성하지 않습니다. view 함수가 아닌, 다른함수 내에서 view 함수를 호출할 경우에는 블록체인에 트랜잭션을 생성하므로 가스비가 ..
2022.01.23 -
Solidity 기초 - 4 (구조체 압축)
Solidity의 데이터 저장 단위 Solidity는 변수를 선언 시, 256비트의 저장 공간을 미리 잡아놓습니다. 즉, uint로 선언하는 것과 uint16으로 선언하는 것은 가스 비용을 줄이는데에 아무 영향이 없습니다. 구조체 압축 구조체 안에서의 변수 타입 선언은 가능한한 작은 크기의 타입을 사용하는 것이 좋습니다. 구조체도 256비트 단위를 맞춰 저장하려고 하지만, 내부에서 선언되는 타입들은 정렬이 가능하기 때문입니다. C언어의 구조체 padding bit와 동일합니다. struct NormalStruct { uint a; //256 uint b; //256 uint c; //256 }//768 struct MiniMe { uint32 a; //32 uint32 b; //32 uint c; //2..
2022.01.23