/** * Mini profiler: logga le request che superano N secondi * con elenco query + top 20 plugin/funzioni per tempo. * * Rimuovere dopo il debug. */ if (defined('WP_CLI') && WP_CLI) return; if (defined('DOING_CRON') && DOING_CRON) return; if (defined('DOING_AJAX') && DOING_AJAX) return; if (is_admin()) return; define('SAVEQUERIES', true); $GLOBALS['__profiler_start'] = microtime(true); $GLOBALS['__profiler_threshold'] = 3.0; // secondi $GLOBALS['__profiler_log'] = '/tmp/wp-slow-profile.log'; add_action('shutdown', function() { global $wpdb; $elapsed = microtime(true) - $GLOBALS['__profiler_start']; if ($elapsed < $GLOBALS['__profiler_threshold']) return; $log = "\n" . str_repeat('=', 80) . "\n"; $log .= sprintf("[%s] SLOW REQUEST: %.3fs | %s%s\n", date('Y-m-d H:i:s'), $elapsed, $_SERVER['REQUEST_METHOD'] ?? '?', $_SERVER['REQUEST_URI'] ?? '?' ); $log .= sprintf("Memory peak: %.1f MB | Total queries: %d\n", memory_get_peak_usage(true)/1048576, is_array($wpdb->queries) ? count($wpdb->queries) : 0 ); if (is_array($wpdb->queries) && count($wpdb->queries)) { // Aggrega per caller (chi ha lanciato la query) $by_caller = []; $total_query_time = 0; foreach ($wpdb->queries as $q) { $time = $q[1] ?? 0; $total_query_time += $time; // $q[2] è la stack: prendi i primi 2 livelli significativi $stack = $q[2] ?? ''; $callers = explode(',', $stack); $caller = ''; foreach ($callers as $c) { $c = trim($c); // Salta funzioni WP core di basso livello if (preg_match('/^(query|get_results|get_var|get_row|get_col|prepare|_real_query|wpdb::|->)/', $c)) continue; $caller = $c; break; } if (empty($caller)) $caller = 'unknown'; if (!isset($by_caller[$caller])) { $by_caller[$caller] = ['count' => 0, 'time' => 0]; } $by_caller[$caller]['count']++; $by_caller[$caller]['time'] += $time; } uasort($by_caller, fn($a,$b) => $b['time'] <=> $a['time']); $log .= sprintf("Total query time: %.3fs (%.1f%% of request)\n", $total_query_time, ($total_query_time/$elapsed)*100); $log .= "\nTop 20 callers per tempo cumulativo query:\n"; $i = 0; foreach ($by_caller as $caller => $data) { $log .= sprintf(" %6.3fs (%4d queries) %s\n", $data['time'], $data['count'], $caller); if (++$i >= 20) break; } // Top 10 query singole più lente usort($wpdb->queries, fn($a,$b) => $b[1] <=> $a[1]); $log .= "\nTop 10 query singole più lente:\n"; for ($i = 0; $i < min(10, count($wpdb->queries)); $i++) { $q = $wpdb->queries[$i]; $sql = preg_replace('/\s+/', ' ', substr($q[0], 0, 200)); $log .= sprintf(" %.3fs : %s\n", $q[1], $sql); } } $log .= str_repeat('=', 80) . "\n"; file_put_contents($GLOBALS['__profiler_log'], $log, FILE_APPEND | LOCK_EX); }); Poetto di Cagliari, la polemica: "Ombrelloni selvaggi già a maggio"
Seguici

Per ricevere gli aggiornamenti di Cagliari News nella tua casella di posta, inserisci la tua e-mail nel campo sottostante.

Premendo il pulsante Iscriviti, confermi di aver letto e di accettare la nostra Informativa sulla privacy

Poetto di Cagliari, scoppia la polemica: “Ombrelloni selvaggi già a maggio”

Segnalata la presenza di lettini fuori dalle aree in concessione: la rabbia dei bagnanti per l’occupazione della spiaggia libera
Paolo Rapeanu


Il primo maggio avrebbe dovuto rappresentare, simbolicamente, il giorno del rilancio e del relax per migliaia di cagliaritani e turisti accorsi sul litorale del Poetto. Invece, per molti bagnanti, la stagione è iniziata con l’amaro in bocca. Al centro della polemica finisce ancora una volta la gestione delle aree demaniali e il delicato equilibrio tra stabilimenti privati e spiaggia libera.

L’episodio al Poetto: la foto della discordia

Attraverso la segnalazione di un lettore, emerge una situazione che sembra ripetersi di anno in anno nonostante le normative vigenti. In uno scatto realizzato al Poetto, si nota chiaramente come circa quindici lettini siano stati posizionati ben oltre il perimetro delimitato dalla concessione balneare.

Nonostante ci si trovi ancora in "bassa stagione", la sensazione di molti cittadini è che i confini stabiliti dal Piano di Utilizzo dei Litorali (PUL) siano diventati, nei fatti, elastici. "Le concessioni si arrogano il diritto di piazzare le attrezzature fuori dall'area loro assegnata", denuncia il lettore deluso. "Se iniziamo così a maggio, cosa dobbiamo aspettarci per agosto?".

Spiaggia libera: un diritto sempre più ristretto?

Il tema dell’occupazione abusiva del suolo pubblico è una ferita aperta per la città di Cagliari. La legge parla chiaro: i concessionari hanno diritto a operare esclusivamente all'interno degli spazi mappati e autorizzati dagli enti competenti. Ogni metro guadagnato "extra" dai gestori rappresenta un metro sottratto alla collettività, a chi preferisce l'asciugamano sulla sabbia o a chi, semplicemente, non può permettersi il costo giornaliero di una postazione attrezzata.

Le critiche non risparmiano la vigilanza. La domanda che rimbalza sui social e tra i frequentatori della spiaggia è una sola: chi deve controllare? La Polizia Locale e la Guardia Costiera sono le autorità preposte al monitoraggio del litorale, ma i cittadini lamentano una carenza di sanzioni esemplari che possano fungere da deterrente contro quella che viene definita una vera e propria "invasione silenziosa".

Verso un’estate di controlli o di anarchia?

Il Poetto è il salotto buono di Cagliari, una risorsa ambientale ed economica inestimabile. Tuttavia, l'abuso degli spazi pubblici rischia di minare il rapporto di fiducia tra istituzioni, imprenditori e cittadini. Se da un lato gli stabilimenti offrono servizi essenziali per il turismo, dall'altro la tutela del diritto alla libera fruizione della costa deve restare una priorità assoluta.

In attesa di una risposta ufficiale dalle autorità o di un intervento di ripristino della legalità alla prima fermata, la cittadinanza resta in guardia. La speranza è che questo "inizio col piede sbagliato" sia solo un caso isolato e non il preludio a un'altra estate di battaglie per un posto al sole.

Per ricevere gli aggiornamenti di Cagliari News nella tua casella di posta, inserisci la tua e-mail nel campo sottostante.

Premendo il pulsante Iscriviti, confermi di aver letto e di accettare la nostra Informativa sulla privacy