In determinate circostanze, la chiamata append() attiva un panico esaurito della memoria e sembra che append() non restituisca nulla.golang: impossibile ripristinare dall'interruzione della memoria insufficiente
Come evitare lo scenario di panico e mostrare al mio utente "Risorsa temporanea non disponibile"?
Con i migliori saluti,
Questa domanda mi fa incuriosire, ci deve essere un modo per gestirlo con più grazia. Che ne dici di verificare preventivamente le condizioni di memoria del sistema e dare l'avviso prima di arrivare al punto di panico? – evanmcdonnal
@evanmcdonnal: Come verificherebbe preventivamente? Quello che consideri "usato" potrebbe non essere ciò che il kernel considera usato. Non puoi fare affidamento sul ritorno di malloc, perché ti dà sempre un puntatore quando è attivo overcommit. Il kernel può anche liberare memoria quando necessario, causando il "controllo" per restituire i falsi positivi. (e questo è solo su Linux, dovresti fare questo multipiattaforma) – JimB
Non sono sicuro, era solo un'idea su come migliorare l'applicazione. Se avessi saputo di un pacchetto che poteva dirmi in modo affidabile dove l'utilizzo della mia memoria era relativo al massimo consentito dal runtime, l'avrei usato per scrivere una risposta nel tentativo di descrivere ciò che ho descritto. Potrebbe non esserci un modo affidabile per farlo. Tuttavia, personalmente prenderei i falsi positivi/non la perfetta prevenzione degli errori su errori brutti irrecuperabili. In questa circostanza, la barra per "abbastanza buono" non è molto elevata. – evanmcdonnal