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

    −1

    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
    class MyBigClass
    {
        var $allocatedSize;
        var $allMyOtherStuff;
    }
    
    function AllocateMyBigClass()
    {
        $before = memory_get_usage();
        $ret = new MyBigClass;
        $after = memory_get_usage();
        $ret->allocatedSize = ($after - $before);
    
        return $ret;
    }

    Зачем нам в языке адекватный sizeof, у нас нет времени, чтобы ебаться с ним!

    Подробнее: https://stackoverflow.com/questions/1351855/getting-size-in-memory-of-an-object-in-php

    Запостил: gost, 25 Сентября 2018

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

    • показать все, что скрытоvanished
      Ответить
      • struct MyBigClass {
            size_t allocatedSize;
            void *allMyOtherStuff;
        }
        
        MyBigClass AllocateMyBigClass() {
            MyBigClass ret;
            ret.allocatedSize = sizeof(MyBigClass);
        
            return ret;
        }
        Ответить
        • # MyBigClass AllocateMyBigClass() {
          MyBigClass * AllocateMyBigClass() {
          # MyBigClass ret;
          MyBigClass * ret = malloc(sizeof(MyBigClass));
          # ret.allocatedSize = sizeof(MyBigClass);
          ret->allocatedSize = sizeof(MyBigClass);
          Ответить
        • Кстати, хуета под void*allMyOtherStuff не будет подсчитана. Я б шаблонизировал:
          template <typename T>
          struct MyBigClass {
            std::size_t allocatedSize;
            T allMyOtherStuff;
          };
          
          template <typename T, typename... Args>
          std::unique_ptr<MyBigClass<T>> AllocateMyBigClass(Args&&... args) {
            auto ret = std::make_unique<MyBigClass<T>>(MyBigClass<T>{0, T{std::forward<Args>(args)...}});
            ret->allocatedSize = sizeof(MyBigClass<T>);
          
            return ret;
          }
          Ответить
          • Для тех, у кого зачешется деобфусцировать: https://wandbox.org/permlink/Toie7GwNd9kx94iz
            Ответить
            • показать все, что скрытопочесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса
              Ответить
    • Что-то из разряда sleep(3600*24);
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • MyBigAss
      Ответить

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