Mitlas (mitlas) wrote,
Mitlas
mitlas

Category:

for coders only (7)

У pro-программистов на некоторые тесты никогда не хватает времени - дела, дела и ещё раз отдых! :)

А тем временем...

Давным-давно объектное программирование было медленнее функционального. Проведём тест в современных условиях на примере доступа к свойству именованного массива и объекта:

<?
$var1 = array();
$time1 = time();

for ($i = 0; $i < 10000000; ++$i)
  $var1["counter"] += 1;
?>
Array: <?=(time() - $time1)?>

<?
class timeObj
{
  public $counter = 0;
}

$var2 = new timeObj;
$time2 = time();

for ($i = 0; $i < 10000000; ++$i)
  $var2-counter += 1;
?>
Object: <?=(time() - $time2)?>


результат выполнения, в среднем, таков:
Array: 2
Object: 4

разница - в 2 раза! что показывает, что без крайней необходимости, а особенно в сайтах и Интернет-системах - использовать объектную модель не нужно и даже нельзя. к тому же, в объектной модели новым программистам разобраться сложнее

в общем, любая страничка сайта - есть файл, в UNIX - всё есть файл, и, следовательно - продуманная файл-ориентированная функциональная архитектура системы даст наибольшую выгоду в скорости выполнения


кстати, мультимерные массивы, в среднем, исполняются так же быстро как и одномерные (и, в любом случае - быстрее, чем объекты):

<?
$var3 = array();
$var3[0] = array();

$time3 = time();

for ($i = 0; $i < 10000000; ++$i)
  $var3[0]["counter"] += 1;
?>
multi Array: <?=(time() - $time3)?>

результат:
multi Array: 2

ЛЮБИТЕ ЖЕНЩИН И НЕ УВЛЕКАЙТЕСЬ ОБЪЕКТАМИ! :)))
Tags: programming
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments