API に関するものではない google-apps-script に関する質問がある場合は、まず JavaScript に関する質問を検索してみてください。この場合、私はJavaScript object sizeを見つけ、受け入れられた答えを apps-script で試しました。(実際には、「改善された」という回答が受け入れられました。) まったく変更を加えていませんが、テスト機能付きでここに再現しているので、カット&ペーストするだけで試すことができます。
stud
これは、デバッガーでテスト オブジェクトを使用して取得したものです。
これは完全ではありません。たとえば、ScriptDB で使用するキーのサイズは考慮されていません。別の答えがそれを突き刺しました。ただし、オブジェクトには 256 文字のメールアドレスなど、潜在的に巨大な値が含まれているため、キーの長さはほとんど問題になりません。
// https://stackoverflow.com/questions/1248302/javascript-object-size/11900218#11900218
function roughSizeOfObject( object ) {
var objectList = [];
var stack = [ object ];
var bytes = 0;
while ( stack.length ) {
var value = stack.pop();
if ( typeof value === 'boolean' ) {
bytes += 4;
}
else if ( typeof value === 'string' ) {
bytes += value.length * 2;
}
else if ( typeof value === 'number' ) {
bytes += 8;
}
else if
(
typeof value === 'object'
&& objectList.indexOf( value ) === -1
)
{
objectList.push( value );
for( i in value ) {
stack.push( value[ i ] );
}
}
}
return bytes;
}
function Marks()
{
this.maxMarks = 100;
}
function Student()
{
this.firstName = "firstName";
this.lastName = "lastName";
this.marks = new Marks();
}
function test () {
var stud = new Student();
var studSize = roughSizeOfObject(stud);
debugger;
}