Ci sono diversi modi per ottimizzare e velocizzare al massimo il nuovo VBulletin 4, sia la VBulletin Suite CMS che VBulletin Forum. Ecco una guida con i consigli migliori (alcune modifiche sono a vostro rischio e pericolo e non mi assumo alcuna responsabilità).
Disabilita Lista Utenti
Vi basta spuntare l’opzione in Impostazioni->Opzioni->Opzioni Lista Utenti (o in inglese: Settings -> Options -> User Listing Options). Visualizzare la lista degli utenti a cosa serve? Serve per vedere chi ha creato più post, chi ha reputazione alta… ma a chi serve vedere questi dati? Sicuramente a ben pochi o nessun utente, mentre per gli spammer è un modo semplice per creare liste di utenti a cui inviare mail di spam! Inoltre aumenterà la richiesta di risorse ogni volta che viene creata una lista, quindi è bene disabilitarla.
Pulisci la Cache
VBulletin 4 ha una cache interna basata sul database che non si pulisce mai ed elementi scaduti nella cache rimangono nel database all’infinito finché non svuoti l’intera cache.
Crea un nuovo plugin (Aggiungi nuovo plugin) e seleziona dalla lista Locazione Hook la voce cron_script_cleanup_hourly e inserisci il seguente codice php che permette di pulire gli elementi non utilizzati nella cache ogni ora:
require_once(DIR . '/includes/class_bootstrap_framework.php');
vB_Bootstrap_Framework::init();
vB_Cache::instance()->clean(true);Generare la lista di Utenti Attualmente Attivi in modo più efficiente
La lista degli Utenti Attualmente Attivi che viene mostrata in homepage può richiedere davvero tante risorse, specie se avete un numero elevato di utenti connessi. E’ molto meglio usare il tag di vBulletin 4 {vb:each} per generarla. Ecco come modificare il vostro template:
In forum.php cambia questo codice:
$show['comma_leader'] = ($activeusers != '');
$templater = vB_Template::create('forumhome_loggedinuser');
$templater->register('loggedin', $loggedin);
$activeusers .= $templater->render();in questo:
$activeusers[] = $loggedin;e nel template FORUMHOME modifica il codice
{vb:raw activeusers}in questo:
{vb:stylevar dirmark}{vb:raw loggedin.musername}{vb:raw loggedin.invisiblemark}{vb:raw loggedin.buddymark}Aumenta la velocità della lista dei Messaggi Privati
Se non hai mai importato i messaggi privati da altre piattaforme con ImpEx o altro, allora puoi tranquillamente utilizzare il PMID per ordinare i messaggi senza che il database debba creare tabelle temporanee per ordinarli.
Crea un nuovo plugin usando come Locazione Hook la voce private_messagelist_filter e inserisci questo codice:
if ($sortfield == 'pmtext.dateline') $sortfield = 'pm.pmid';Usa in modo più efficiente Memcache Datastore
Se usi Memcache sul tuo server come Datastore, puoi renderlo più veloce utilizzando Datastore Keys multiple in un singolo passo:
In includes/class_datastore.php, all’interno di vB_Datastore_Memcached::fetch() sostituisci il codice
$unfetched_items = array();
foreach ($items AS $item)
{
$this->do_fetch($item, $unfetched_items);
}con:
if ($this->prefix) {
foreach ($items as $item) {
$items_fetch[] = $this->prefix . $item;
}
}
else
{
$items_fetch =& $items;
}
$items_found = $this->memcache->get($items_fetch);
$unfetched_items = array_keys(array_diff_key(array_flip($items_fetch), $items_found));
foreach ($items_found AS $key => $data)
{
$this->register(substr($key, strlen($this->prefix), 50), $data);
}Questo renderà il vostro Datastore (necessario la visualizzazione di ciascuna pagina) circa il 20% più veloce.
Usa YUI 2.8.2 o superiore
vBulletin 4 usa una versione datata di Yahoo User Interface (versione 2.7.0) quindi non c’è motivo di tenerla quando esiste già la versione aggiornata 2.8.x che è pienamente compatibile e ha un gran numero di bug fixes.
Per modificarlo basta andare in Impostazioni->Opzioni->Impostazioni Server e Opzioni Ottimizzazione (in inglese Settings -> Options -> Server Settings and Optimization Options) e imposta Utilizza YUI Remoto su Yahoo. Dopodiché modifica il file includes/class_core.php cambiando
define('YUI_VERSION', '2.7.0'); // define the YUI version we bundlein
define('YUI_VERSION', '2.8.2'); // define the YUI version we bundleImposta SQL Mode
Di default l’impostazione per sql_mode è vuota, quindi se non hai dato un’impostazione generale per il tuo MySQL per l’sql_mode, allora puoi commentare tale opzione in includes/init.php:
$db->force_sql_mode('');in
// $db->force_sql_mode('');showgroups.php Query Cache
C’è una query in showgroups.php che non scala e diventa sempre più lenta man mano che gli utenti aumentano. Un modo per rimediare è quello di mettere i risultati di tale query nella cache per 6 ore. Cambia queste linee:
// get usergroups who should be displayed on showgroups
// Scans too many rows. Usergroup Rows * User Rows
$users = $db->query_read_slave("
SELECT user.*,
usergroup.usergroupid, usergroup.title,
user.options, usertextfield.buddylist,
" . ($show['locationfield'] ? 'userfield.field2,' : '') . "
IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid
" . ($vbulletin->options['avatarenabled'] ? ",avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight, customavatar.width_thumb AS avwidth_thumb, customavatar.height_thumb AS avheight_thumb, filedata_thumb, NOT ISNULL(customavatar.userid) AS hascustom" : "") . "
FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON(usergroup.usergroupid = user.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
" . ($vbulletin->options['avatarenabled'] ? "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)" : "") . "
WHERE (usergroup.genericoptions & " . $vbulletin->bf_ugp_genericoptions['showgroup'] . ")
");
$groupcache = array();
while ($user = $db->fetch_array($users))
{
$t = strtoupper($user['title']);
$u = strtoupper($user['username']);
$groupcache["$t"]["$u"] = $user;
}in
require_once(DIR . '/includes/class_bootstrap_framework.php');
vB_Bootstrap_Framework::init();
if (!$groupcache = vB_Cache::instance()->read('showgroups.groupcache')) {
// get usergroups who should be displayed on showgroups
// Scans too many rows. Usergroup Rows * User Rows
$users = $db->query_read_slave("
SELECT user.*,
usergroup.usergroupid, usergroup.title,
user.options, usertextfield.buddylist,
" . ($show['locationfield'] ? 'userfield.field2,' : '') . "
IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid
" . ($vbulletin->options['avatarenabled'] ? ",avatar.avatarpath, NOT ISNULL(customavatar.userid) AS hascustomavatar, customavatar.dateline AS avatardateline,customavatar.width AS avwidth,customavatar.height AS avheight, customavatar.width_thumb AS avwidth_thumb, customavatar.height_thumb AS avheight_thumb, filedata_thumb, NOT ISNULL(customavatar.userid) AS hascustom" : "") . "
FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "usergroup AS usergroup ON(usergroup.usergroupid = user.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
" . ($vbulletin->options['avatarenabled'] ? "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)" : "") . "
WHERE (usergroup.genericoptions & " . $vbulletin->bf_ugp_genericoptions['showgroup'] . ")
");
$groupcache = array();
while ($user = $db->fetch_array($users))
{
$t = strtoupper($user['title']);
$u = strtoupper($user['username']);
$groupcache["$t"]["$u"] = $user;
}
vB_Cache::instance()->write('showgroups.groupcache', $groupcache, 360);
}
Disabilita la Navigazione Rapida (Quick Nav)
Quanti di voi usano la lista dei forum che compare come menu a tendina in fondo a ogni post e pagina? Praticamente nessuno e disabilitarla salverà molte risorse utilizzate da vBulletin 4 per generarla. Per farlo basta andare in Impostazioni->Opzioni->Impostazioni Generali e mettere no a Utilizza Menù Navigazione Veloce.
Fai molta attenzione ai plugin che installi
Quando installi un plugin per vBulletin 4 fai molta attenzione: potresti aggiungere del codice molto pesante che può generare query e richiedere risorse anche elevate al tuo server. E’ bene quindi testare ogni plugin su un server di prova e monitorare l’utilizzo delle risorse molto attentamente.
loading...



![Recensione: Dissipatore CPU Noctua NH-U12S. Test e Prove In questa recensione prederemo in esame il dissipatore Noctua NH-U12S a singola torre che monta la ventola Noctua NF-F12 PWM con la possibilità di raddoppiare la ventola. La confezione Come sempre la confezione è ricca e completa e comprende oltre al dissipatore una ventola NF-F12 PWM, un tubetto di pasta termoconduttiva Noctua NT-H1, un cavo riduttore di potenza, il sistema […]](/wp-content/uploads/2013/11/Noctua-NH-U12S-by-1e2.it-01-80x50.jpg)
![Recensione: Dissipatore Noctua NH-U14S. Test e Prove Il dissipatore Noctua NH-U14S è uno dei dissipatori di maggiori dimensioni prodotti dalla Noctua a singola torre di raffreddamento che monta una ventola da 140mm e la possibilità di adottare la configurazione a doppia ventola. La confezione All’interno della scatola troviamo il dissipatore Noctua NH-U14S con già una ventola Noctua NF-A15 PWM montata, un set di aggancio Secufirm2 per socket […]](/wp-content/uploads/2013/11/Noctua-NH-U14S-by-1e2.it-01-80x50.jpg)
![Recensione Ventole Noctua NF-S12A FLX, ULN, PWM Sono state rilasciate da poco nuovi aggiornamenti alle ventole Noctua che riguardano la serie S12 giungendo così alla terza generazione e sono la Noctua NF-S12A FLX, la versione ULN e quella PWM che verranno confrontate in questa recensione. La Confezione Tutte le ventole Noctua sono sempre molto curate anche nella confezione e negli accessori inclusi. La scatola mostra e descrive […]](/wp-content/uploads/2013/07/Noctua-NF-S12A-by-1e2.it-19-80x50.jpg)
![Plunk Mega – Recensione e Opinioni Il Plunk Mega rappresenta l’affinazione di un prodotto (media player 3D e registratore DTV HD doppio canale su base Realtek RTD1186) su una base hardware disponibile sul mercato da qualche tempo. Oltre alla stabilità del prodotto raggiunta grazie alle affinazioni tecnologiche, l’implementazione studiata da Plunk rappresenta una soluzione ragionata tesa a migliorare alcuni aspetti che in prodotti simili, ma precedenti, […]](/wp-content/uploads/2013/05/Plunk-Mega-by-1e2.it-01-80x50.jpg)
![Xtreamer SideWinder 3 Media Player: Recensione e Opinioni L’Xtreamer SideWinder 3 è un media player o hard disk multimediale dotato di caratteristiche avanzate tra cui la possibilità di usare a scelta come sistema operativo Linux o Android. La recensione è stata scritta dal nostro utente Bovirus grazie al supporto di OdosMedia. L’Xtreamer SideWinder 3 è in vendita da OdosMedia.it Descrizione Xtreamer Sidewinder 3 L’Xtreamer Sideiwnder 3 rappresenta l’evoluzione […]](/wp-content/uploads/2013/05/Xtreamer-SideWinder3-by-1e2.it-12-80x50.jpg)
![Recensione Ventole Noctua NF-A14 FLX e ULN e NF-A15 PWM: le Giganti Noctua Tra i nuovi prodotti di casa Noctua abbiamo testato e recensito per voi le ventole NF-A14 FLX e ULN e la ventola NF-A15 PWM. Sono le ventole Noctua più grandi dal diametro maggiore di 14 e 15 cm rispettivamente. Ma le apparenze possono ingannare! La confezione Prima di analizzare nei dettagli ciascuna ventola, vediamo cosa ci offre la Noctua in […]](/wp-content/uploads/2013/02/Noctua-NF-A15-PWM-by-1e2.it-13-80x50.jpg)
![Recensione Noctua NH-L9i: dissipatore per CPU LGA115x Low Profile Con l’arrivo del nuovo dissipatore Noctua NH-L9i, la Noctua entra anche nel campo degli HTPC e dei Mini-Computer con un dissipatore per CPU dalle dimensioni estremamente ridotte e performance invidiabili. Scopriamone le caratteristiche in questa recensione Noctua NH-L9i. Contenuto della confezione Noctua NH-L9i Rispetto a tutte le altre confezioni dei dissipatori Noctua a cui eravamo abituati, le dimensioni della scatola […]](/wp-content/uploads/2012/12/Noctua-NH-L9i-by-1e2.it-01-80x50.jpg)