1. PHP / Говнокод #5213

    +160

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    <?php
     include '/system/config_bd.php'; // соединение с базой
     
    class pagination_start {
    public $page;
    public $CountListPage=10; 
    public $sql="SELECT * FROM `news`";
    public $start;
    public $limit;
    public $ires;
     
    public function page_settings() {
    $this->page_get();
    $this->start=($this->page-1)*$this->CountListPage; 
    $this->limit=" LIMIT $this->start,$this->CountListPage";
    $this->ires=mysql_query($this->sql.$this->limit);
    }
     
    public function page_get() {
    if(empty($_GET['page'])){$this->page=1;} 
    else {$this->page=$_GET['page'];} 
    }
    }
     
    class pagination_end extends pagination_start{
    public $link_interval;
    public $i;
    public $sp;
     
    public function pagination($class_all,$class_once) {
     $link_page = '';
     $this->page_get();
     $count=mysql_num_rows(mysql_query($this->sql)); 
     if($count>$this->CountListPage){ 
    $CountList=ceil($count/$this->CountListPage); 
     if($this->page > 3 && $CountList > 5){echo '<span class="'.$class_all.'"><a href="?page=1'.$this->link_interval.'">1</a></span><span class="'.$class_all.'">...</span>';} 
    if($this->page > 3 && $CountList > 5){$this->sp=$this->page-2;}else{$this->sp=1;} 
    if($this->page > $CountList-3 && $CountList > 5){$this->sp=$CountList-4; } 
    if($CountList>5)$cpc=5;else $cpc=$CountList; 
    for($this->i=$this->sp;$this->i<$this->sp+$cpc;$this->i++){ 
     
    if($this->i == $this->page){  printf ('<span class="'.$class_once.'">%s</span>',$this->i); }
    else{ $suit=$this->link_interval.$this->i; 
    $links_cent = '<span class="'.$class_all.'"><a href="?page='.$suit.'">'.$this->i.'</a></span>';
     echo $links_cent;  } } 
    $suit=$this->link_interval."?page=".$CountList.""; 
    if($this->page<=$CountList-3 and $CountList>5){echo '<span class="'.$class_all.'">...</span>  <span class="'.$class_all.'"><a href="'.$suit.'">'.$CountList.'</a></span> ';} }
    }
    }
    
    $CountListPage = 5;   // Сколько объектов отображать на странице # по умолчанию 10
    $sql="SELECT * FROM `news` ";  // SQL запрос # по умолчанию "SELECT * FROM `news`"
    $class_all='page_all'; // Css класс всех страниц кроме текущей
    $class_once='class_once'; // Css класс всех страниц кроме текущей
    
    /* Формирование страниц и sql запрос */
    $pagination = new pagination_start();
    $pagination->CountListPage = $CountListPage;
    $pagination->sql = $sql;
    $pagination->page_settings();
    while($ires_result=mysql_fetch_array($pagination->ires))
    {
    echo $ires_result['id']."<br/>";
    } 
    /* Пагенирование */
    $pagination_end = new pagination_end();
    $pagination_end->CountListPage = $CountListPage;
    $pagination_end->sql = $sql;
    $pagination_end->pagination($class_all,$class_once); // От css клас от 2 страници до предпоследней

    Запостил: qbasic, 11 Января 2011

    Комментарии (238) RSS

    • Образец говнеца в Joomla-стайл
      Ответить
    • показать все, что скрытоИ где тут гавнецо?
      Ответить
    • пагенирик ёптваю
      Ответить
    • Ниасилел. Большой код - не признак говнокода. А то повадились тут выкладывать килобайтами
      Ответить
      • >Большой код - не признак говнокода.
        а признак большого говнокода

        но оформление, конечно, динамично-петушковое, это да.
        Ответить
    • Я вижу комментарии в которых говорится- да да говнокод говнокод, но никто не сказал чем это говнокод ? Я автор данного кода, мне реально интересно стало, почему идеально работающая пагинация - говнокод?
      Ответить
      • > идеально работающая пагинация
        пагенирование же, класа страници
        Ответить
      • >Я автор данного кода
        даже так? лучше бы просто трололо оказался..

        >идеально работающая пагинация - говнокод
        bwahaha =) золотце, это типичное неструктурированное пхп-говно, вобравшее в себя все антипаттерны.
        Ответить
        • >> пхп --- говно, вобравшее в себя все антипаттерны.

          вот да
          Ответить
      • показать все, что скрытоДа ты бы хотябы код отформатировал.
        Ответить
      • показать все, что скрытоИ что ещё бросилось в глаза - смешаны CamelCase и under_score
        Ответить
      • Говнокод буквально в каждой строчке, чувак
        Ответить
    • ну а до сих пор на проблему кода никто не указал.
      Ответить
      • >проблему
        оптимистично

        проблема в том, что всем, буквально, впадлу повторять одно и тоже 1516 раз для каждого новоиспеченного динамического петушка. вытирай слезки и читай весь раздел /php/
        Ответить
      • что мне не нравится но это ИМХО
        Классика пхпешного говнеца
        - Скульные запросы размазаны по коду класса.
        - намешаны логика и представление

        далее особенности
        что сие означает ???
        $class_all='page_all'; // Css класс всех страниц кроме текущей
        $class_once='class_once'; // Css класс всех страниц кроме текущей

        не mysql_fetch_array а mysql_fetch_assoc на куя 2 массива если пользуешь только 1

        Да и вообще зачем пагинатору знание о базе ????

        архитектура пагинатра должна быть такая

        $max_item=5;
        $count_item=count($rows);
        $paginator= new paginator($count_item,$max_item);
        $paginator->write();
        Ответить
        • $class_all='page_all'; // Css класс всех страниц кроме текущей
          $class_once='class_once'; // Css класс всех страниц кроме текущей

          Это я передаю цсс классы, что бы можно было оформить пагинацию как душе угодно
          Ответить
          • а вам не кажется, что для оформления как душе угодно, одних ксс классов маловато?
            и все равно, каша получается
            Ответить
        • а мне казалось что такая:
          $p=new Paging($first,$last);
          $p->getCurrent();
          $p->first();
          $p->last();
          $p->prev();
          $p->next();

          и никакого html
          Ответить
        • wh0cd332779 <a href=http://viagraprice2017.com/>viagra sale</a>
          Ответить
          • Слабая капча. Говорю, латиницу нужно на кириллицу менять.
            Ответить
            • Предлагаю кандзи-капчу.
              Ответить
              • Так Борманда не вернёшь.
                Ответить
              • А может быть, лучше кана-капчу? Катакану и хирагану я хотя бы смогу подсмотреть в Википедии.
                Ответить
                • Можно ещё говнорекапчу: "выберите все картинки, на которых есть С++"
                  Ответить
                  • выберите код который не скомпилируется в VC+2010
                    Ответить
                    • Обычная рекапча используется для распознавания образов пользователями, а мы будем использовать капчу с кусками кода для статического анализа и поиска уязвимостей. Пофлудил вечером -- улучшил опенсорс.
                      Ответить
                      • Вот это деловой разговор. А потом стартап^W ГК купит PVS Studio.
                        Ответить
                        • И сменит логотип на блюющее радугой готсе.
                          Ответить
                          • пивасы такие няшечки

                            люблю читать их отчеты о том как в виртуал боксе и ядре линукса нашли тупейшие баги-опечатки
                            Ответить
                            • > люблю читать их отчеты о том как в виртуал боксе и ядре линукса нашли тупейшие баги-опечатки
                              Няшечками они были бы, если бы они ещё научились багрепорты нормальные писать, а не спамить ссылками.
                              Ответить
                              • А что именно они дают командам проверяемых проектов?
                                Ответить
                                • Лень искать пруфлинки, но это выглядит как "мы нашли баги в вашем продукте, но вам их не покажем, пройдите по ссылке".
                                  Ответить
                                  • А, знаю
                                    У меня на некоторых сайтах такие окошки выскакивают

                                    Внимание!
                                    В Вашем компьютере обнаружен вирус
                                    [исправить бесплатно без регистрации и СМС]
                                    Ответить
                                    • Раньше они показывали там реалистичное сканирование System32 с прогрессбаром...
                                      Ответить
                                      • Многоточие? Вы чем-то расстроены, или обеспокоены? Кажется, у Вас насморк.
                                        Не с Дмитрием Аналотольевичем ли катались на лыжах?
                                        Ответить
                                      • до сих пор показывают
                                        особенно круто когда зашел на сайт с андроидного устройства
                                        Ответить
                              • > если бы они ещё научились багрепорты нормальные писать

                                Я им тоже самое сказал а они мне карму в ответ слили
                                https://habrahabr.ru/company/pvs-studio/blog/204342/#comment_7058632
                                Ответить
                                • Кстати, а жетбрейнс
                                  как соотносяца R# for C++ и CLion инспекции к пивасу?

                                  и почему у Романа нет виртуалбокса? Винду на виртуалбокс школьнкии 16-ти летние умеют ставить
                                  Ответить
                                  • > и почему до сих пор нет пиваса под линукс?
                                    > и почему у Романа нет виртуалбокса?

                                    Посту четыре года, вроде уже и под линукс версия есть. Да и тогда вроде у мелкософта не было бесплатных виртуалок для тестов. Малварь с торрентов качайте сами.
                                    Ответить
                                    • у MS есть тридцатидневные триалки, во всяком случае для серверов

                                      Я уже понял что пивас есть под линукс
                                      Было бы странно еслиб не было

                                      Надо оче сильно упопорца чтобы сделать код парсера или анализатора виндозависимым
                                      Ответить
                                      • > у MS есть тридцатидневные триалки, во всяком случае для серверов


                                        Я знаю, что они есть. Я не уверен, были ли они 4 года назад.

                                        > Было бы странно еслиб не было

                                        Её официально релизнули всего где-то полгода назад.
                                        https://habrahabr.ru/company/pvs-studio/blog/313498/
                                        Ответить
                                        • Стертор, ну ты и мудлан
                                          Ответить
                                        • Мне похуй.
                                          Ответить
                                        • Ты не сравнивал инспекции силайна или шланга (Clang Static Analyzer)
                                          с пивасой?
                                          Ответить
                                          • Ты не сравнивал инспекции силайна или шланга (Clang Static Analyzer)
                                            с пивасой?
                                            Ответить
                                • vanished
                                  пивас непричем
                                  речь о хромиуме
                                  Ответить
                            • к сожалению только тупейшие опечатки они и находят
                              Ответить
                              • Ну и что?

                                мне нравится когда в моем коде находят хуиту вроде

                                unsigned int foo();
                                /////////

                                if (! foo()) {
                                ///
                                }
                                Ответить
                              • Ты не сравнивал инспекции силайна или шланга (Clang Static Analyzer)
                                с пивасой?
                                Ответить
                  • Или задачку типа такой:
                    http://govnokod.ru/22448
                    Ответить
                    • Ты не сравнивал инспекции силайна или шланга (Clang Static Analyzer)
                      с пивасой?
                      Ответить
      • Что, никто не знает?
        Ответить
    • > идеально работающая пагинация

      ржал до слез....)))))))))))))) спасибо

      обычно это значит, что идеально работает она до первых изменений, а потом система сыпется как карточный домик, и немало времени уходит на согласование всех измененных частей друг с другом
      Ответить
    • А что там еще добавлять? У вас есть постраничный вывод вида:

      1 ... 7 [8] 9 ... 546 - к примеру 8 текущая страница. Передаете 2 css класса и задаете любой вид начиная от

      1 ... [8] ... 546 заканчивая
      Какой то та jquery фишкой.

      Я вообще не понял сути гавнокода, если он работает и работает как нужно, где говно проявляется ?
      Ответить
    • вот чисто интересно, чем они будут отличаться. Вот мне реально интересно вникнуть в ваши мысли и отделить говно от "неговно"

      Я писал проекты с подобной пагинацией, только она была без классов. Применял к следующим вещам:

      Юзеры
      Новости
      Комментарии
      Статьи
      Материал
      Да все что угодно, все действия происходят в цикле

      while($ires_result=mysql_fetch_array($pa gination->ires))
      {
      echo $ires_result['id']."<br/>";
      }

      Формируете нужный sql запрос и все, в данном примере просто сформирован запрос в табличку news и для примера я вывел в столбик все id (сугубо для вида)

      Обычно в цикл я засовываю шаблонизатор, а уже в .tpl файлах лежит дизайн материала скажем.
      Ответить
    • Это да, согласен она рассчитана только на базу. Но в кастрюле тоже картошку не жарят)
      Ответить
    • ладно понятно, спасибо
      Ответить
      • показать все, что скрытоЛол, пыховцы такие смешные
        Ответить
        • Неактуальный комментарий спустя 6 лет.
          Ответить
          • показать все, что скрытоНу как ты жил эти шесть лет? Программировать научился?
            Ответить
          • показать все, что скрытоПочему это неактуальный? Ты что ли стал серьезным программистом, и забросил свой пхп?
            Ответить
            • показать все, что скрытоСкорее просто походил по граблям и набрался опыта... И теперь ему и самому смешно глядеть на этот код.
              Ответить
              • показать все, что скрытону да, теперь он вместо mysql юзает mysqli как минимум
                Ответить
              • А что делать, 6 лет назад не было столько информации, сколько есть сейчас, а то, что было явно продемонстрировано выше. На тот момент это было мной скопировано и жило по принципу "Это-же работает...".

                Ну и в начале своего пути я стал жертвой Попова.
                Ответить
            • php я не забрасывал. По поводу программиста скажу, что скорее стал серьезным web-разработчиком.
              Ответить
              • > стал серьезным web-разработчиком

                Кстати, а как померить серьёзность web-разработчика?
                Ответить
                • хороший вопрос.
                  Наверное уровнем уважения и доверия окружающих коллег, клиентов и/или руководства умноженное на свою ответственность. Получим условный коэффициент серьезности. Ну это скорее так, коэффициент.
                  Ответить
                  • показать все, что скрытоА можете пример кода показать?
                    Ответить
                    • Я не пишу в данный момент open source проектов, а занимаюсь закрытой разработкой приватного API. Поэтому не могу продемонстрировать свой код.

                      Хочу поинтересоваться откуда такое проявление интереса к развитию моей личности ?

                      Если "чисто спортивный интерес", то можем подискутировать в личной переписке.
                      Ответить
                      • показать все, что скрытоЭто же говнокод. Чужой код тут просят только с одно целью. Угадайте с какой
                        Ответить
                        • Честно говоря, где бы я не был с какими крутыми спецами не общался, говно код есть везде.
                          И как я понял, ковногод (если рассматривать на уровне функций или методов) не так плохо, как говноархитектура.

                          А в наше время когда идет работа под бизнес, где иногда скорость в разы важнее качества, то далеко не каждая компания может позволить с десяток сеньеров и DDD.
                          Ответить
                • показать все, что скрытоОткрываешь проект серьёзного веб-разраба и, ахая, говоришь "Серьёзно...", схватившись за бороду и с серьёзным видом кивая. Это тебе не весёлые хихиханьки и шутеечки над ГК.
                  Ответить
                • У вебпрограммисте нет серьезности. Скорее сурьезность
                  Ответить
              • показать все, что скрыто--вы стали программистом?
                --скорее, я стал веб-разработчиком
                Ответить
                • Программист - для меня это весьма сильное слово. Например тот, кто знает математику, физику, алгоритмы, для кого язык программирования не имеет значения и еще много критериев.
                  Ответить
                  • показать все, что скрыто> физику
                    > язык программирования не имеет значения
                    Олололо. И на хуе дудец, и на яйцах игрец.
                    Ответить
                    • показать все, что скрытоСём, ты как?
                      Ответить
                      • показать все, что скрытоЯ не сема, дурак.
                        Ответить
                        • показать все, что скрытоДурак, ты как?

                          на самом деле ты зря доебался до nepster. Ты знаешь, я последний человек в мире, кто будет соглашаться с ПХПшником, но тут он на 80% прав.
                          Ответить
                          • показать все, что скрытоЯ не представляю, как язык программирования может не иметь значения, если человеку не плевать на свою работу и на программирование вообще.
                            Ответить
                            • Может быть, он программистами называет тех, кто знает много языков программирования, либо тех, кому нетрудно выучить новый язык, так что вопрос, на каком языке писать, не имеет особого значения?
                              Ответить
                            • показать все, что скрытоЕсли ты умеешь в алгоритмы и структуры данных, понимаешь как работает компилятор и как выполняет твою программу процессор, как управлять памятью, как профилировать (целая наука!) и дебажить свою программу. умеешь в красивую архитектуру и паттерны (в хорошем смысле), умеешь рефакторинг, юниттесты, CI, то совершенно не важно пишешь ты на Java или на C# или C. Тебя можно переучить на другой язык (ну кроме C++ конечно, это отдельная песня).

                              Понимание каких-нить ADT куда важнее синтаксиса и стандартной либы конкретного ЯП: ее всегда можно посмотреть в референсе
                              Ответить
                            • Тот, для кого язык программирования имеет значение, ценен до тех пор, пока ему на замену не придёт человек, умеющий думать.
                              Ответить
                            • показать все, что скрытоМатапушто пишут не на ЯП а на технологии (питон+джанго или жава+hibernate и прочая поебень). Один на другой легко не поменять.
                              Ответить
                  • показать все, что скрытоНу физика в этом списке может быть и лишняя, а в остальном согласен
                    Ответить
                    • Думаю для разработчиков игр физика не будет лишней.
                      Ответить
                      • показать все, что скрытоЭто предметная область.

                        А для разработчиков тулзов для игр на бирже будет не лишним понимание бинарных опционов, но больше оно никому не надо
                        Ответить
                      • Я игры не писал, но думаю, физика создателю игр нужна не больше, чем анатомия тому, кто хочет найти много друзей-людей. Я о том, что в играх рассматривается не само физическое явление, а его модель, которая (а) должна только выглядеть как это явление и (б) должна крайне быстро считаться. Соответственно, во главу угла встают рецепты создания реалистичного приближения. Т.е. скорее всего разные хаки и математические алгоритмы. А более-менее "настоящая" физика скорее всего вшита в специальные библиотеки и движки, и чтобы реализовать её оптимальней, придётся сильно попотеть и выйти за рамки разработки игр.
                        Ответить
                        • показать все, что скрытоЧтобы пользоваться этими движками и библиотеками все равно надо физику знать. Может на чуть меньшем уровне чем создателю движка, но совсем без знания дальше туториала не уйти. Ну и "рецепты создания реалистичного приближения" тоже напрямую с физикой связаны, в физике как бы приближения и рассматриваются, напрямую через уравнения волновой функции никто не считает.
                          Ответить
                          • > физику знать
                            Где-то на баше была цитата, что-то вроде:
                            Я весь из себя программист записался на пары по информатике к гуманитариям. Прихожу, а там преподавательница спрашивает
                            -- Какие языки программирования вы знаете?
                            Когда меня спросили, честно сказал, что знаю C, Java и python.
                            -- Что так мало? - спросила преподавательница, - Джвойку вам!
                            И тут девочка гуманитарий тянет руку:
                            -- Pascal, C, C++, Java, Haskell, Brainfuck, Lua, Vala, ...
                            Я аж прихренел от такого. Гуманитарий, а знает пяднадцать языков!
                            Прихожу на пересдачу, в ходе разговора узнаю, что же подразумевалось под "знаете". Тут уж преподавательница прихренела, а мы под столом ржали всей маршруткой.
                            Ответить
                    • Дреппер свою восхитительную статью про устройство памяти начинает с разбора принципов работы триггеров.
                      Ответить
                      • показать все, что скрыто> every programmer
                        Ну-ну... Даже пхпшник?
                        Ответить
                        • Опять про PHP, грязный язычник?

                          Не нужно ругать язык и напоказ отстраняться. Надо набраться смелости и признаться. Друзьям, коллегам, родственникам, а главное - себе самому. Плюнуть на мнения других, построенные на том, что сказали в подворотне; ощутить свободу самовыражения; поверить в себя, принять себя таким, какой есть.
                          Зачем поддакивать стереотипам, если язык подходит под задачу, кормит всю твою семью и, откровенно говоря, сильно нравится? Надо встать на табуретку и громко сказать: "Здравствуйте, я - Борманд, и я - пхпшник!"

                          Вообще, пхпшники специально ругают свой язык, чтобы у них конкурентов меньше было. Язык удачен как по порогу вхождения и простоте, так и по скорости разработки и получения прибыли.
                          Давайте распиарим PHP, пусть жирующие пхпрограммисты переходят на Haskell!
                          Ответить
                        • Принцип Юма: "Из того, как оно есть, не следует, как оно должно быть."
                          Ответить
                      • показать все, что скрытоВащет триггеры в памяти тока в кеше и в сенс амплифаерс

                        В драм тока кондер и транзистер
                        Ответить
                        • И в SRAM на микроконтроллерах.
                          Ответить
                          • показать все, что скрытооперативная память не бывает SRAM обычно
                            Она или DRAM, или (в очень редких случаях) NOR Flash

                            SRAM это круто и быстро и рефрешить не нужно, но оче дорого
                            слишком много транзисторов на бит
                            Ответить
                            • показать все, что скрыто> не бывает SRAM обычно
                              Он же про микроконтроллеры. А там только стыд и срам.

                              > слишком много транзисторов на бит
                              Там ещё "проводов" дохуя - питание на каждую ячейку, джва битлайна... Плотность вообще никакая выходит, да.

                              > NOR Flash
                              > Flash
                              В качестве оперативной памяти? Пруф в студию!
                              Ответить
                              • показать все, что скрытоhttp://core.spansion.com/xip-on-nor-flash-meet-your-microcontrollers-main-memory/#.WKsse1V96rc

                                ps: борманд, ты же понимаешь что от оперативной памяти нужно чтобы
                                1) адресовался бит
                                2) можно было сделать в нее/из нее mov в регистр (тоесть чтобы она была подключена к одной шыне с цпу)

                                Можно хоть дискету с буфером в качестве RAM юзать. Ну будет у тебя OS 4 года грузится, но не в этом же суть
                                Ответить
                                • показать все, что скрыто> xip-on-nor-flash
                                  Дык тут просто код с флешки исполняют код, не копируя в оперативку. Никто туда не пишет. Все мелкие контроллеры так умеют, это не считается чем-то крутым, да и не от хорошей жизни делается...

                                  > в нее
                                  Где тут обещают, что я могу делать mov в неё и не убить её нахуй через пару дней?
                                  Ответить
                                • показать все, что скрыто> не в этом же суть
                                  Ну ахуеть теперь. Назвать дискету/диск/флеш RAM - это сильный ход.

                                  Я даже не знаю, чем такую карту крыть...

                                  Если я скажу, что нужно "почти постоянное и одинаковое время доступа к любому участку", то ты возьмёшь и тупо задержек напихаешь на свою дискету, чтобы любой байт на ней за большое (но одинаковое) время читался и писался.

                                  И даже магнитная лента - это RAM.

                                  И даже флэш перфолента - всего то надо успевать её переписывать на новую. И добавить время этой перезаписи ко времени доступа. Но кого это ебут эти мелочи?
                                  Ответить
                                  • показать все, что скрыто>>почти постоянное и одинаковое время доступа к любому участк
                                    у DRAM оно совсем не всегда одинаковое. Ты что, Касперски не читал?

                                    >>и тупо задержек напихаешь на свою дискету
                                    нет, я поставлю кеш перед ней чтобы ты мог по байтово читать

                                    >>лента
                                    Алан Тюринг так и говорил

                                    Борманд, давай по-начному. Дай мне определение оперативной памяти
                                    Ответить
                                    • показать все, что скрыто> Дай мне определение оперативной памяти
                                      Не дам. SDRAM под него один хер не подойдёт, как ты уже написал выше. Она больше на блочное устройство похожа, просто быстрая ;(

                                      З.Ы. А вот старая асинхронная DRAM всё-таки ближе была к памяти с произвольным доступом...
                                      Ответить
                                      • показать все, что скрытоНу а чего тогда ты так разъмоционировался? Линейка кеша + контроллер RAM + сам DRAM = оперативнка

                                        А линейка кеша + контроллер FLASH + NOR FLASH чем не оперативка?
                                        Ответить
                                        • показать все, что скрыто> FLASH
                                          Сдохнет быстро.

                                          > NOR
                                          Стоит дорого.

                                          Тогда уж NAND лепи в свою оперативку, чо. И контроллер как в SSD, чтобы флешку равномерно дрочил.
                                          Ответить
                                          • показать все, что скрыто>>Сдохнет быстро.
                                            как быстро?

                                            >>NAND
                                            Ой нет, NAND это слишком уж блочно. NOR же можно побайтово писать, в NAND нельзя.
                                            Хотя при ОЧЕ УМНОМ контроллере с хорошим буфером это не проблема.
                                            Ответить
                                      • показать все, что скрыто>>З.Ы. А вот старая асинхронная DRAM всё-таки ближе была к памяти с произвольным доступом...

                                        если совсем буквоёбствовать то никогда доступ не был произвольным. Все равно стучаться в открытую страницу и в закрытую это не одинаково
                                        Ответить
                                        • Борманд опять пробует в раздвоение личности, сидит под багром?..
                                          Ответить
                                        • показать все, что скрыто> как быстро?
                                          100к где-то. Для RAM это пиздец как мало. Хотя ОЧЕ УМНЫЙ контроллер, конечно, будет ремапать страницы и размазывать всё равномерно.

                                          > NOR же можно побайтово писать
                                          Один раз, ага :) 0xFF -> 0xFE -> 0xFD... ой, а почему-то 0xFC получилось... Придётся всю страницу тереть.

                                          > в открытую страницу и в закрытую это не одинаково
                                          Даже на первых x86, емнип, ещё не парились по этому поводу - тупо RAS/CAS по кругу гоняли...
                                          Ответить
                                          • показать все, что скрыто>>100к где-то. Для RAM это пиздец как мало

                                            канает, однако если дело тут только в том что туннельный эффект убивает плавающий затвор то это же вопрос времени

                                            >>Один раз, ага :) 0xFF -> 0xFE -> 0xFD...
                                            ну да, во флеше тереть надо всю страницу, ну так в DRAM вообще рефрешиться надо. И чтение страницы всю ее разрешает.

                                            >> ещё не парились по этому поводу - тупо RAS/CAS по кругу
                                            всмысле всегда открывали страницу и ждали?
                                            лол)
                                            Ответить
                                            • показать все, что скрыто> всмысле всегда открывали страницу и ждали?
                                              To keep to a minimum the number of pins on a RAM chip, a chip address is broken into two parts: the column and the row address. With standard DRAM, these must be presented to the DRAM chip in sequence.

                                              A different kind of DRAM chip, referred to as "page-mode" or "static-column" RAM, lets the designer skip sending out part of the address much of the time. This shortens the read/write time tremendously. The supporting logic is more complex, howewer. The speedup is enough to allow the Compaq Deskpro 386/16 to access RAM with no wait states in the best case, two wait states in the worst.


                                              Нагуглилось в журнальчике за 87 год.
                                              Ответить
                                              • показать все, что скрытоокей, принято
                                                значит, до FAGE MODE DRAM они не умели получать бенефит от открытой страницы
                                                Ответить
                                                • показать все, что скрыто> не умели получать бенефит от открытой страницы
                                                  Да его и не было, походу. Частоты то совсем смешные по нынешним меркам.

                                                  А вот на 386 уже пришлось и про кэш задуматься и про саму DRAM.
                                                  Ответить
                                                  • показать все, что скрытои про раздельные шины еще

                                                    в классической писе же одна шина была, и сидели на ней все: от контроллера памяти, до биоса и контроллера флоппи
                                                    Ответить
                                                • показать все, что скрытоЗабавно, что странички в DRAM с тех пор всего раза в 3 быстрее стали переключаться ;)
                                                  Ответить
                                                  • показать все, что скрытоКак ты сравниваешь асинхронную (измряемую в ms) и синхронную (измряемую в тактах) скорость?

                                                    Ну кроме того мы научились открывать сразу много страничек во всем ранге, чередовать их (многоканальность) итд
                                                    Ответить
                                                    • показать все, что скрытоПо секрету - тайминги в даташитах до сих пор пишут в наносекундах и без всяких там округлений. Округлённые на такты - для удобства юзеров.

                                                      Ну вот скрывать эту латенси научились, да. Но почти не уменьшили. Замели под ковёр, так сказать ;)
                                                      Ответить
                                                      • показать все, что скрытону нифига себе для удобства!

                                                        а в SPD что пишут? Контроллер разве не в тактах высчитывает сколько там ему CAS какой-нить ждать?

                                                        Латенси скрыли длинной линейкой кеша и постоянным префетчем
                                                        Ответить
                                                        • показать все, что скрытоАга, и подпиливанием задач под это прокрустово ложе. Вспомни, как все дрочат на размеры кэша, кэшлайна, локальность и т.п. когда приходится реально работать с памятью.

                                                          > SPD
                                                          Х.з. Скорее всего такты под набор частот. Погугли, плиз, мне тоже интересно, я просто не за компом.
                                                          Ответить
                  • Итиь. мадрить, да я программист!
                    Ответить
      • показать все, что скрытоvanished
        Ответить
    • "$CountListPage = 5; // Сколько объектов отображать на странице # по умолчанию 10"
      5 == 10 хулепхп.
      Ответить

    Добавить комментарий