0

私のローカルホストで Doctrine 2 にいくつか問題があります。1 つのクエリのみを使用する 1 つのページは、約 1.5 秒で localhost に読み込まれます。一方、リモート サーバーの読み込みには約 300 ミリ秒かかります ( http://gieromaniak.pl/contact )。何が問題なのかわかりません。それは Doctrine 2 構成ですか、それとも sth ですか? それとも、私のサーバーに PHP 拡張機能 (WAMP - Apache 2.4.2、PHP 5.4.3) がありませんか?

それにもかかわらず、Doctrine 設定ファイルのソース コードを含めます。

<?php
use Doctrine\Common\ClassLoader,
    Doctrine\ORM\Configuration,
    Doctrine\ORM\EntityManager,
    Doctrine\DBAL\Types\Type,
    Doctrine\Common\Cache\ArrayCache,
    Doctrine\DBAL\Logging\EchoSqlLogger;


// include the class loader directly
require_once __DIR__ . '/Doctrine/Common/ClassLoader.php';

$doctrineClassLoader = new ClassLoader('Doctrine', __DIR__ . '/');
$doctrineClassLoader->register();

Config::load('base');
Config::load('database');

if(Config::get('base.mode') == 'development') {
    $bProxyGen = TRUE;
} else {
    $bProxyGen = FALSE;
}

// Set up caches
$cache = new ArrayCache;
$config = new Configuration;
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);

// Metadata Driver
$driverImpl = $config->newDefaultAnnotationDriver($models);
$config->setMetadataDriverImpl($driverImpl);

// Proxy configuration
$config->setProxyDir(PATH_ROOT.Config::get('database.proxy_dir'));
$config->setProxyNamespace(Config::get('database.proxy_namespace'));
$config->setAutoGenerateProxyClasses($bProxyGen);

// Database connection information
$connectionOptions = array(
    'driver' => 'pdo_mysql',
    'charset' => 'utf8',

    'dbname' => 'dbname',
    'user' => 'username',
    'password' => 'password',
);

// Create EntityManager
$entityManager = EntityManager::create($connectionOptions, $config);

助けてくれてありがとう!

4

1 に答える 1

0

apcをインストールし、mysqlのパフォーマンスを向上させることをお勧めします。

APCをインストールします

そのためにWampサーバー(x86)を使用することを強くお勧めします。x64バージョンのWindows用のapc.dllはうまく機能しません。

次の変更を加えて、このチュートリアルに従ってください。

  • apc.dllへのリンク
  • phpinfo()からZendExtensionBuildまたはPHPExtensionBuild見つけます。あなたはあなたのWAMPローカルホストのためにそれを使うことができますhttp://localhost/?phpinfo=1
  • Zend Extension Buildは次のようになります:

API220100525、TS、VC9

  • TSワードに注意してください。空白にすることができます。彼らがNTSのような別の言葉であるかどうか見てください
  • TSまたはNTSの値に従って最新バージョンをダウンロードする
  • dllの名前をphp_apc.dllに変更します
  • php_apc.dllをYourWampFolder/bin/php/ext/
  • wampには2つのphp.iniファイルがあります:wamp\bin\apache\apacheX.X.XX\bin\そしてwamp\bin\php\phpX.X.X\(XX ..をあなたのバージョンに置き換えてください)extension=php_apc.dll;両方に書き込みます
  • Wampを閉じる/開く(再起動しない)
  • wampアイコンから->php->PHP拡張機能->php_apc.dllチェックしてアクティブ化
  • Wampを再起動します

apc.phpファイルをプロジェクトディレクトリにダウンロードすることで、APCが実行されていることを確認できます。PECLWebサイトで入手可能な圧縮ファイルにあります。最新バージョンを取得します。

今あなたのブラウザから:http://localhost/yourproject/apc.php

php.iniからAPCの設定を変更できます(両方試してください)

例:

//php.ini
...

[APC]
apc.ttl=7200
apc.user_ttl=7200
apc.shm_segments=3
apc.shm_size=90M
apc.max_file_size = 2M
apc.include_once_override = 1

キャッシュをクリアしたい場合に備えて

// resetcache.php
<?php
if ( $_GET['pass'] == 'yes') {
if(function_exists('apc_clear_cache')){
        if (apc_clear_cache() && apc_clear_cache('user'))
                print 'All Clear!';
        else
                print 'Clearing Failed!';

        print '<pre>';
        print_r(apc_cache_info());
        print '</pre>';
}else print "fuction_doesn't exist";
        } else {
        print 'Authenticate, please!';
}

不要なアクセスを防ぐためにセキュリティを強化しましたが、本番サーバーにapc.phpは含めません。clearcache.php

Mysqlのパフォーマンスを向上させる

  1. link1
  2. link2
  3. link3

ローカルマシンをクリーンアップする

ブラウザのキャッシュと一時フォルダをクリーンアップできます。CCleaner

これは、過去にローカルマシンでDoctrine2の速度を上げるために行ったすべてのことです。Mysql / Apacheプロセスで使用されるRAMを監視して、RAMを追加購入/割り当てる必要がないかどうかを確認することもできます。

于 2013-02-27T05:34:29.583 に答える