سلام روز خوش
یکی از اعضای گروه تلگراممون که مهندس آی تیه اینارو گفت
لطفا بررسیش کنید.
حالت FUll رو تست کردم دوباره
در کل سرعتش خیلی پایین هست. با دکتر GPT مشاوره کردم گفت دلیل ش اینه که هر درخواست کلی منابع نیاز داره تا انجام بشه.
چند نکته خیلی مهم:
Apps Script برای throughput طراحی نشده
هر request داخل infrastructure گوگل execute میشه
body ها Base64 میشن
JSON encode/decode میشن
UrlFetchApp.fetch انجام میشه
دوباره Base64 میشه
دوباره به کلاینت برمیگرده
یعنی برای هر packet عملا چند لایه processing داری.
خودم با SSL پشت کلا دفلیر و بدون کلاد فلیر تست کردم. با کلادفلیر که کار نکرد. با SSL خود VPS هم کار میکنه. ولی باز سرعت پایینه
دکتر GPT میگه معماری باید تغییر کنه. یعنی اون قسمت Base64 مثلا حذف بشه، GAS را حذف کنی
الان سیستم polling-based است:
Client
→ POST
→ GAS
→ VPS
VPS
→ response
→ GAS
→ Client
مشکل اصلی فعلی
بیشترین bottleneck اینها هستند:
هر packet تبدیل میشود به:
JSON
Base64
HTTP request
هر بار:
UrlFetchApp.fetch()
اجرا میشود.
این realtime نیست.(repeat forever)
باید tunnel را تبدیل کنی به:
large chunk multiplexing
نه packet-by-packet relay.
این باید توسط صاحب پروژه انجام بشه.
اون قسمت Base64 حدود 33 درصد overhead داره و روی کارایی خیلی تاثیر داره.
با کمک این متد ها سرعت بهینه میشه روی حالت Full:
gzip
chunk packing
compact encoding
بزرگترین بهبود واقعی
به جای:
HTTP POST per packet
باید:
HTTP POST per stream chunk
بشود.
سلام روز خوش
یکی از اعضای گروه تلگراممون که مهندس آی تیه اینارو گفت
لطفا بررسیش کنید.
حالت FUll رو تست کردم دوباره
در کل سرعتش خیلی پایین هست. با دکتر GPT مشاوره کردم گفت دلیل ش اینه که هر درخواست کلی منابع نیاز داره تا انجام بشه.
چند نکته خیلی مهم:
Apps Script برای throughput طراحی نشده
هر request داخل infrastructure گوگل execute میشه
body ها Base64 میشن
JSON encode/decode میشن
UrlFetchApp.fetch انجام میشه
دوباره Base64 میشه
دوباره به کلاینت برمیگرده
یعنی برای هر packet عملا چند لایه processing داری.
خودم با SSL پشت کلا دفلیر و بدون کلاد فلیر تست کردم. با کلادفلیر که کار نکرد. با SSL خود VPS هم کار میکنه. ولی باز سرعت پایینه
دکتر GPT میگه معماری باید تغییر کنه. یعنی اون قسمت Base64 مثلا حذف بشه، GAS را حذف کنی
الان سیستم polling-based است:
Client
→ POST
→ GAS
→ VPS
VPS
→ response
→ GAS
→ Client
مشکل اصلی فعلی
بیشترین bottleneck اینها هستند:
هر packet تبدیل میشود به:
JSON
Base64
HTTP request
هر بار:
UrlFetchApp.fetch()
اجرا میشود.
این realtime نیست.(repeat forever)
باید tunnel را تبدیل کنی به:
large chunk multiplexing
نه packet-by-packet relay.
این باید توسط صاحب پروژه انجام بشه.
اون قسمت Base64 حدود 33 درصد overhead داره و روی کارایی خیلی تاثیر داره.
با کمک این متد ها سرعت بهینه میشه روی حالت Full:
gzip
chunk packing
compact encoding
بزرگترین بهبود واقعی
به جای:
HTTP POST per packet
باید:
HTTP POST per stream chunk
بشود.