"PHP" / Говнокод #24812 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 gost, (Updated )

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

    • 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;
        }
        Ответить
          • почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса лпочесалпочесалпочесалпочесалпочесалпоче салпочесалпочесалпочесалпочесалпочесалпо чесалпочесалпочесалпочесалпочесалпочесал почесалпочесалпочесалпочесалпочесалпочес алпочесалпочесалпочесалпочесалпочесалпоч есалпочесалпочесалпочесалпочесалпочесалп очесалпочесалпочесалпочесалпочесалпочеса
            Ответить
            • тудентка из Санкт-Петербурга — 21-летняя Анна Довгалюк опубликовала видеоманифест против мэнспрединга (когда мужчина сидит, широко раздвинув ноги). Девушка обливала смешанным с водой отбеливателем тех мужчин, кто сидел в подобном положении в вагоне метро. Своими действиями Анна хочет привлечь внимание к "отвратительному явлению, с которым борются во всём мире".
              Ответить
              • А что тут такого широко раздвинув ноги сидеть? Так же когда тресешься в поезде, автобусе лучше упор и контролируеш тело чтоб никуда не поехало прижиматься к какому-то бомжу или поцеловать писос рядомстоящего мужика.
                Ответить
              • Ну ёпамать! Не ущемляйте прав моих ииц! Они имеют право на личное пространство.
                Ответить
  • Мне понравился ответ:

    Since clone (from Prof83's answer) didn't work for me, I tried to serialize and unserialize the variable whose size I want to measure:
    function getMemoryUsage($var) {
        $mem = memory_get_usage();
        $tmp = unserialize(serialize($var));
        // Return the unserialized memory usage
        return memory_get_usage() - $mem;
    }
    Ответить
  • Для чего нужно было расчитывать размер объекта на пхп?

    Уверен, что можно обойтись без этого.
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8