ruby.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
If you are interested in the Ruby programming language, come join us! Tell us about yourself when signing up. If you just want to join Mastodon, another server will be a better place for you.

Administered by:

Server stats:

1K
active users

#int

0 posts0 participants0 posts today

→ Le Point contre Wikipédia
hyperbate.fr/castagne/2025/02/

« […] Wikipédia, par ses principes, par l’engagement de sa communauté de contributeurs, tient tête à des personnalités ou des intérêts puissants et établis, et constitue, par la recherche d’exactitude et la diffusion de l’information, une précieuse forme de contre-pouvoir. »

hyperbate.frLe Point contre Wikipédia | castagne

64-bit time_t 的事情

看到「The perils of transition to 64-bit time_t (gentoo.org)」這篇,原文在「The perils of transition to 64-bit time_t」,Gentoo 的人在討論將 time_t 從 32-bit 換成 64-bit 遇到的困難。

這邊會想把 32-bit time_t 換到 64-bit time_t 的動力是 32-bit 的 time_t 會在 2038 年遇到 integer overflow,這是接下來的十幾年得想辦法的問題。

blog.gslin.org/archives/2024/0

#Computer #Murmuring #Programming #Software #2038 #32bit #64bit #date #int #integer #time #time_t #year

Gea-Suan Lin's BLOG · 64-bit time_t 的事情看到「The perils of transition to 64-bit time_t (gentoo.org)」這篇,原文在「The perils of transition to 64-bit time_t」,Gentoo 的人在討論將 time_t 從 32-bit 換成 64-bit 遇到的困難。 這邊會想把 32-bit time_t 換到 64-bit time_t 的動力是 32-bit 的 time_t 會在...

Як же мене після C++ навіть на Python тягне оптимізувати там де ніхто не звертає уваги. До прикладу багато хто використовує всюди списки дам де це не потрібно і можна взяти кортеж.

Обʼєкт типу object займає 16 BYTES. Це можна дізнатись викликавши метод __sizeof__ в обʼєкта.

o = object()
o.__sizeof__()

Від цього типу наслідуються всі інші стандартні й не тільки типи навіть якщо явно цього не вказано. Тому це найменший можливий розмір будь-якого обʼєкта. Перевірити це можна за допомоги функції issubclass яка приймає два типи та повертає значення типу bool.

>>> issubclass(int, object)
True
>>> issubclass(float, object)
True
>>> issubclass(bool, object)
True
>>> issubclass(str, object)
True
>>> issubclass(list, object)
True
>>> issubclass(tuple, object)
True
>>> class A:
...     pass
... 
>>> issubclass(A, object)
True

Саме через це всі обʼєкти мають функцію __sizeof__ і не тільки.

Якщо ми подивимось на розміри стандартних типів, то можемо трохи здивуватись.

>>> int().__sizeof__()
28
>>> float().__sizeof__()
24
>>> bool().__sizeof__()
28
>>> str().__sizeof__()
49
>>> tuple().__sizeof__()
24
>>> list().__sizeof__()
40
>>> set().__sizeof__()
200
>>> dict().__sizeof__()
48

Найбільше я здивувався розміру типу bool. Він займає скільки ж як і int, і є більшим за float та tuple. І це все розміри порожніх (нульових) обʼєктів.

Тепер порівняємо кортежі та списками з однаковим вмістом.

>>> t = (1,2,3,4,5,6)
>>> l = [1,2,3,4,5,6]

>>> t.__sizeof__()
72
>>> l.__sizeof__()
88

Різниця та ж що й при порожніх контейнерах через те що контейнер зберігає тільки посилання на обʼєкт. Можемо в цьому переконатись за id обʼєктів.

>>> id(t[0]) == id(l[0])
True
>>> t[0] is l[0]
True

Оператор is робить те саме, він порівнює ідентифікатори.

Це добре що python оптимізує програму не створюючи зайвих обʼєктів, але всеодно всі обʼєкти займають дуже багато місця. Саме через це я й ненавиджу такі мови як python, js...

#програмування #python #sizeof #розміри #типи #int #float #list #tuple #списки #кортежі #sizeof #object #оптимізація #бісить

social.net.uaSocial.Net.Ua