بهینهسازیهای تاثیرگذار بر متغیرها در پایتون
در پایتون، کدها پیشز ([؟] معناء:پیشز [آوایش: [[و:پیشز|آواثاء:پیشز]]؛ تلفظ «پیشز»: 📥]) اجرشتن ([؟] معناء:اجرشتن [آوایش: [[و:اجرشتن|آواثاء:اجرشتن]]؛ تلفظ «اجرشتن»: 📥]) در ماشین مجازی، به مرحله بهینش [؟ آوایش: [[و:بهینش|آواثاء:بهینش]] 📥؛ معنی «بهینش» به فارسی «معناء:بهینش» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] ورویشند ([؟] معناء:ورویشند.می [آوایش: [[و:ورویشتن|آواثاء:ورویشند]]؛ تلفظ «ورویشتن»: 📥]). دو مورد از بهینشهای [؟ آوایش: [[و:بهینش|آواثاء:بهینشهای]] 📥؛ معنی «بهینشهای» به فارسی «معناء:بهینشهای» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] اهمئا ([؟] معناء:اهمئا [آوایش: [[و:اهمئا|آواثاء:اهمئا]]؛ تلفظ «اهمئا»: 📥]) که یگانشتن ([؟] معناء:یگانشتن [آوایش: [[و:یگانشتن|آواثاء:یگانشتن]]؛ تلفظ «یگانشتن»: 📥]) دلماءهای [؟ آوایش: [[و:دلماء|آواثاء:دلماءهای]] 📥؛ معنی «دلماءهای» به فارسی «معناء:دلماءهای» و معادل «دلماء» به انگلیسی «عدلاء:دلماء» است] برخی نوعپالها [؟ آوایش: [[و:نوعپال|آواثاء:نوعپالها]] 📥؛ معنی «نوعپالها» به فارسی «معناء:نوعپالها» و معادل «نوعپال» به انگلیسی «عدلاء:نوعپال» است] باعثد ([؟] معناء:باعثد/می [آوایش: [[و:باعثتن|آواثاء:باعثد]]؛ تلفظ «باعثتن»: 📥])، اینها ئند ([؟] معناء:ئند [آوایش: [[و:ئدن|آواثاء:ئند]]؛ تلفظ «ئدن»: 📥]):
- بنشمدن [؟ آوایش: [[و:بنشمدن|آواثاء:بنشمدن]] 📥؛ معنی «بنشمدن» به فارسی «معناء:بنشمدن» و معادل «بنشمدن» به انگلیسی «عدلاء:بنشمدن» است]: نوع هی ([؟] معناء:هی [آوایش: [[و:هی|آواثاء:هی]]؛ تلفظ «هی»: 📥])(ی) بهینش ([؟] معناء:بهینش [آوایش: [[و:بهینش|آواثاء:بهینش]]؛ تلفظ «بهینش»: 📥]) که در آن دلماء [؟ آوایش: [[و:دلماء|آواثاء:دلماء]] 📥؛ معنی «دلماء» به فارسی «معناء:دلماء» و معادل «دلماء» به انگلیسی «عدلاء:دلماء» است] برخی شیءهای دگرشناپذیر [؟ آوایش: [[و:دگرشناپذیر|آواثاء:دگرشناپذیر]] 📥؛ معنی «دگرشناپذیر» به فارسی «معناء:دگرشناپذیر» و معادل «دگرشناپذیر» به انگلیسی «عدلاء:دگرشناپذیر» است]، بین غیرپذیرها [؟ آوایش: [[و:غیرپذیر|آواثاء:غیرپذیرها]] 📥؛ معنی «غیرپذیرها» به فارسی «معناء:غیرپذیرها» و معادل «غیرپذیر» به انگلیسی «عدلاء:غیرپذیر» است] اشرکشند ([؟] معناء:اشرکشند [آوایش: [[و:اشرکشتن|آواثاء:اشرکشند]]؛ تلفظ «اشرکشتن»: 📥]).
- بهلاندن [؟ آوایش: [[و:بهلاندن|آواثاء:بهلاندن]] 📥؛ معنی «بهلاندن» به فارسی «معناء:بهلاندن» و معادل «بهلاندن» به انگلیسی «عدلاء:بهلاندن» است]: نوع هی ([؟] معناء:هی [آوایش: [[و:هی|آواثاء:هی]]؛ تلفظ «هی»: 📥])(ی) بهینش [؟ آوایش: [[و:بهینش|آواثاء:بهینش]] 📥؛ معنی «بهینش» به فارسی «معناء:بهینش» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] ساده و محلی که روی تکه کدهای همجوار بشعملَد ([؟] معناء:بشعملَد [آوایش: [[و:شعملدن|آواثاء:بشعملَد]]؛ تلفظ «شعملدن»: 📥]).
داندن ([؟] معناء:داندن [آوایش: [[و:داندن|آواثاء:داندن]]؛ تلفظ «داندن»: 📥]) این بهینشها [؟ آوایش: [[و:بهینش|آواثاء:بهینشها]] 📥؛ معنی «بهینشها» به فارسی «معناء:بهینشها» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] تاید ([؟] معناء:تاید.مید [آوایش: [[و:تاید|آواثاء:تاید]]؛ تلفظ «تاید»: 📥]) بانجَد ([؟] معناء:بانجَد [آوایش: [[و:انجدن|آواثاء:بانجَد]]؛ تلفظ «انجدن»: 📥]) (به):
- درکشتن ([؟] معناء:درکشتن [آوایش: [[و:درکشتن|آواثاء:درکشتن]]؛ تلفظ «درکشتن»: 📥]) بهتر عملش ([؟] معناء:عملش [آوایش: [[و:عملش|آواثاء:عملش]]؛ تلفظ «عملش»: 📥]) پایتون هنگام تسبدن ([؟] معناء:تسبدن [آوایش: [[و:تسبدن|آواثاء:تسبدن]]؛ تلفظ «تسبدن»: 📥]) شیءها به غیرپذیرها [؟ آوایش: [[و:غیرپذیر|آواثاء:غیرپذیرها]] 📥؛ معنی «غیرپذیرها» به فارسی «معناء:غیرپذیرها» و معادل «غیرپذیر» به انگلیسی «عدلاء:غیرپذیر» است]؛ و بتبع ([؟] معناء:بتبع [آوایش: [[و:بتبع|آواثاء:بتبع]]؛ تلفظ «بتبع»: 📥])،
- یافتن زمان منسمئا ([؟] معناء:منسمئا [آوایش: [[و:منسمئا|آواثاء:منسمئا]]؛ تلفظ «منسمئا»: 📥]) برای نتارجدن ([؟] معناء:نتارجدن [آوایش: [[و:نتارجدن|آواثاء:نتارجدن]]؛ تلفظ «نتارجدن»: 📥]) دو غیرپذیر [؟ آوایش: [[و:غیرپذیر|آواثاء:غیرپذیر]] 📥؛ معنی «غیرپذیر» به فارسی «معناء:غیرپذیر» و معادل «غیرپذیر» به انگلیسی «عدلاء:غیرپذیر» است] با عملپال [؟ آوایش: [[و:عملپال|آواثاء:عملپال]] 📥؛ معنی «عملپال» به فارسی «معناء:عملپال» و معادل «عملپال» به انگلیسی «عدلاء:عملپال» است] سریعتر «
is» بجای سانجدن ([؟] معناء:سانجدن [آوایش: [[و:سانجدن|آواثاء:سانجدن]]؛ تلفظ «سانجدن»: 📥]) آنها با عملپال [؟ آوایش: [[و:عملپال|آواثاء:عملپال]] 📥؛ معنی «عملپال» به فارسی «معناء:عملپال» و معادل «عملپال» به انگلیسی «عدلاء:عملپال» است] «==»
بهینش [؟ آوایش: [[و:بهینش|آواثاء:بهینش]] 📥؛ معنی «بهینش» به فارسی «معناء:بهینش» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] پایتون وابسته به نسخه و اسسشهای [؟ آوایش: [[و:اسسش|آواثاء:اسسشهای]] 📥؛ معنی «اسسشهای» به فارسی «معناء:اسسشهای» و معادل «اسسش» به انگلیسی «عدلاء:اسسش» است] متفمئا ([؟] معناء:متفمئا [آوایش: [[و:متفمئا|آواثاء:متفمئا]]؛ تلفظ «متفمئا»: 📥]) آن ئَد ([؟] معناء:ئَد [آوایش: [[و:ئدن|آواثاء:ئَد]]؛ تلفظ «ئدن»: 📥])؛ اطلعهای ([؟] معناء:اطلعهای [آوایش: [[و:اطلع|آواثاء:اطلعهای]]؛ تلفظ «اطلع»: 📥]) بیِنشته ([؟] معناء:بیِنشته [آوایش: [[و:بیِنشتن|آواثاء:بیِنشته]]؛ تلفظ «بیِنشتن»: 📥]) در این نویسماء ([؟] معناء:نویسماء [آوایش: [[و:نویسماء|آواثاء:نویسماء]]؛ تلفظ «نویسماء»: 📥]) برای اسسش [؟ آوایش: [[و:اسسش|آواثاء:اسسش]] 📥؛ معنی «اسسش» به فارسی «معناء:اسسش» و معادل «اسسش» به انگلیسی «عدلاء:اسسش» است] CPython نسخه ۳.۹ ئَد ([؟] معناء:ئَد [آوایش: [[و:ئدن|آواثاء:ئَد]]؛ تلفظ «ئدن»: 📥]):
import platform
import sys
# یافتن نسخه پایتون
python_version = platform.python_version()
# یافتن اَسِسِش پایتون
python_implementation = platform.python_implementation()
print(f"Python Version: {python_version}")
print(f"Python Implementation: {python_implementation}")
Python Version: 3.9.2 Python Implementation: CPython
معناء:بهینش (بهینش) معناء:بنشماء (بنشماء)
در این بهینش [؟ آوایش: [[و:بهینش|آواثاء:بهینش]] 📥؛ معنی «بهینش» به فارسی «معناء:بهینش» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است] برخی از دلماءهای [؟ آوایش: [[و:دلماء|آواثاء:دلماءهای]] 📥؛ معنی «دلماءهای» به فارسی «معناء:دلماءهای» و معادل «دلماء» به انگلیسی «عدلاء:دلماء» است] int -عددهای بین [-۵, ۲۵۶]- و str - رشتههای شبیه شناسین ([؟] معناء:شناسین [آوایش: [[و:شناسین|آواثاء:شناسین]]؛ تلفظ «شناسین»: 📥]) (حتی اگر نویسه نخست اشان ([؟] معناء:اشان [آوایش: [[و:اشان|آواثاء:اشان]]؛ تلفظ «اشان»: 📥]) عدد بئَد ([؟] معناء:بئَد [آوایش: [[و:ئدن|آواثاء:بئَد]]؛ تلفظ «ئدن»: 📥])) - بیلحاظ ([؟] معناء:بیلحاظ [آوایش: [[و:بیلحاظ|آواثاء:بیلحاظ]]؛ تلفظ «بیلحاظ»: 📥]) به چگونه ایجدن ([؟] معناء:ایجدن [آوایش: [[و:ایجدن|آواثاء:ایجدن]]؛ تلفظ «ایجدن»: 📥]) اشان ([؟] معناء:اشان [آوایش: [[و:اشان|آواثاء:اشان]]؛ تلفظ «اشان»: 📥])، در تدک ([؟] معناء:تدک [آوایش: [[و:تدک|آواثاء:تدک]]؛ تلفظ «تدک»: 📥]) یگانه بشوند:
a = int(12)
b = int('12')
c = int('1100', 2)
print(f"a: {hex(id(a))}\nb: {hex(id(b))}\nc: {hex(id(c))}")
print(f"a is b -> {a is b}, a is c -> {a is c}")
print('=' * 20)
a = '0_some_long_string'
b = '0_some_long_string'
print(f"a is b -> {a is b}")
a: 0x7ff3dfc6d680 b: 0x7ff3dfc6d680 c: 0x7ff3dfc6d680 a is b -> True, a is c -> True ==================== a is b -> True
int (نه هرنوع ([؟] معناء:هرنوع [آوایش: [[و:هرنوع|آواثاء:هرنوع]]؛ تلفظ «هرنوع»: 📥]) عددی) که بین [-۵, ۲۵۶] باشند، انجشد ([؟] معناء:انجشد [آوایش: [[و:انجشتن|آواثاء:انجشد]]؛ تلفظ «انجشتن»: 📥]):a = 10.0
b = 10.0
print(f"a: {hex(id(a))}", f"b: {hex(id(b))}")
print(f"a is b -> {a is b}")
print("=" * 20)
a = 257
b = 257
print(f"a: {hex(id(a))}", f"b: {hex(id(b))}")
print(f"a is b -> {a is b}")
a: 0x70325b90f9d0 b: 0x70325b561e50 a is b -> False ==================== a: 0x70325b562bd0 b: 0x70325b561f30 a is b -> False
str را بنشمد ([؟] معناء:بنشمد [آوایش: [[و:بنشمدن|آواثاء:بنشمد]]؛ تلفظ «بنشمدن»: 📥]): «درونریزی شیءها در پایتون»a = 'some long string' b = 'some long string' print(a is b)
False
int و str) انجشد ([؟] معناء:انجشد [آوایش: [[و:انجشتن|آواثاء:انجشد]]؛ تلفظ «انجشتن»: 📥])، امن ئد ([؟] معناء:ئد [آوایش: [[و:ئدن|آواثاء:ئد]]؛ تلفظ «ئدن»: 📥]).اثر معناء:بنشمدن (بنشمدن) بر سرعت معناء:ارزجش (ارزجش)
بنشمدن ([؟] معناء:بنشمدن [آوایش: [[و:بنشمدن|آواثاء:بنشمدن]]؛ تلفظ «بنشمدن»: 📥]) هنگام جملدن ([؟] معناء:جملدن [آوایش: [[و:جملدن|آواثاء:جملدن]]؛ تلفظ «جملدن»: 📥]) کدها و پردازش متنها، بویژه هنگامیکه شمار ارزجدنها ([؟] معناء:ارزجدنها [آوایش: [[و:ارزجدن|آواثاء:ارزجدنها]]؛ تلفظ «ارزجدن»: 📥]) بسیار زیاد باشد، سودمند ئد ([؟] معناء:ئد [آوایش: [[و:ئدن|آواثاء:ئد]]؛ تلفظ «ئدن»: 📥])؛ چون بجای سانجدن ([؟] معناء:سانجدن [آوایش: [[و:سانجدن|آواثاء:سانجدن]]؛ تلفظ «سانجدن»: 📥]) رشتهها با عملپال [؟ آوایش: [[و:عملپال|آواثاء:عملپال]] 📥؛ معنی «عملپال» به فارسی «معناء:عملپال» و معادل «عملپال» به انگلیسی «عدلاء:عملپال» است] ==، تاید ([؟] معناء:تاید [آوایش: [[و:تاید|آواثاء:تاید]]؛ تلفظ «تاید»: 📥]) آنها را با is، که بسیار سریعتر ئَد ([؟] معناء:ئَد [آوایش: [[و:ئدن|آواثاء:ئَد]]؛ تلفظ «ئدن»: 📥])، بنتارجد ([؟] معناء:بنتارجد [آوایش: [[و:بنتارجد|آواثاء:بنتارجد]]؛ تلفظ «بنتارجد»: 📥]):
import sys
import time
times = 10_000_000
def compare_eq(n):
a = 'This is a long string...' * 500
b = 'This is a long string...' * 500
for i in range(n):
result = a == b
def compare_is(n):
a = sys.intern('This is a long string...' * 500)
b = sys.intern('This is a long string...' * 500)
for i in range(n):
result = a is b
start = time.perf_counter()
compare_eq(times)
end = time.perf_counter()
print(f"Equality:\t {end - start}")
start = time.perf_counter()
compare_is(times)
end = time.perf_counter()
print(f"Interning:\t {end - start}")
Equality: 2.832107431953773 Interning: 0.3474436930846423
معناء:بهینش (بهینش) معناء:بهلانماء (بهلانماء)
در پایتون، این نوع بهینش [؟ آوایش: [[و:بهینش|آواثاء:بهینش]] 📥؛ معنی «بهینش» به فارسی «معناء:بهینش» و معادل «بهینش» به انگلیسی «عدلاء:بهینش» است]، که در مرحله جملدن [؟ آوایش: [[و:جملدن|آواثاء:جملدن]] 📥؛ معنی «جملدن» به فارسی «معناء:جملدن» و معادل «جملدن» به انگلیسی «عدلاء:جملدن» است] کد ئَد ([؟] معناء:ئَد [آوایش: [[و:ئدن|آواثاء:ئَد]]؛ تلفظ «ئدن»: 📥])، برای بهیندن ([؟] معناء:بهیندن [آوایش: [[و:بهیندن|آواثاء:بهیندن]]؛ تلفظ «بهیندن»: 📥]) بخشهای کوچک کد بانجشد ([؟] معناء:بانجشد [آوایش: [[و:انجشتن|آواثاء:بانجشد]]؛ تلفظ «انجشتن»: 📥])؛ بطوریکه:
- ترجمانال [؟ آوایش: [[و:ترجمانال|آواثاء:ترجمانال]] 📥؛ معنی «ترجمانال» به فارسی «معناء:ترجمانال» و معادل «ترجمانال» به انگلیسی «عدلاء:ترجمانال» است] پایتون ارزاکهای [؟ آوایش: [[و:ارزاک|آواثاء:ارزاکهای]] 📥؛ معنی «ارزاکهای» به فارسی «معناء:ارزاکهای» و معادل «ارزاک» به انگلیسی «عدلاء:ارزاک» است] پایا [؟ آوایش: [[و:پایا|آواثاء:پایا]] 📥؛ معنی «پایا» به فارسی «معناء:پایا» و معادل «پایا» به انگلیسی «عدلاء:پایا» است] را با همارز اشان ([؟] معناء:اشان [آوایش: [[و:اشان|آواثاء:اشان]]؛ تلفظ «اشان»: 📥])(شان) بیجایَد ([؟] معناء:بیجایَد [آوایش: [[و:یجایدن|آواثاء:بیجایَد]]؛ تلفظ «یجایدن»: 📥])؛ مثلا، در زیر ترجمانال [؟ آوایش: [[و:ترجمانال|آواثاء:ترجمانال]] 📥؛ معنی «ترجمانال» به فارسی «معناء:ترجمانال» و معادل «ترجمانال» به انگلیسی «عدلاء:ترجمانال» است] پایتون ارزاک [؟ آوایش: [[و:ارزاک|آواثاء:ارزاک]] 📥؛ معنی «ارزاک» به فارسی «معناء:ارزاک» و معادل «ارزاک» به انگلیسی «عدلاء:ارزاک» است]
24 * 60را با عدد1440بیجایَد ([؟] معناء:بیجایَد [آوایش: [[و:یجایدن|آواثاء:بیجایَد]]؛ تلفظ «یجایدن»: 📥]):
def my_func():
a = 24 * 60
print(my_func.__code__.co_consts)
(None, 1440)
- دلماءهای [؟ آوایش: [[و:دلماء|آواثاء:دلماءهای]] 📥؛ معنی «دلماءهای» به فارسی «معناء:دلماءهای» و معادل «دلماء» به انگلیسی «عدلاء:دلماء» است] پسیکی [؟ آوایش: [[و:پسیکی|آواثاء:پسیکی]] 📥؛ معنی «پسیکی» به فارسی «معناء:پسیکی» و معادل «پسیکی» به انگلیسی «عدلاء:پسیکی» است] دگرشناپذیر [؟ آوایش: [[و:دگرشناپذیر|آواثاء:دگرشناپذیر]] 📥؛ معنی «دگرشناپذیر» به فارسی «معناء:دگرشناپذیر» و معادل «دگرشناپذیر» به انگلیسی «عدلاء:دگرشناپذیر» است]، مانند رتبیکها [؟ آوایش: [[و:رتبیک|آواثاء:رتبیکها]] 📥؛ معنی «رتبیکها» به فارسی «معناء:رتبیکها» و معادل «رتبیک» به انگلیسی «عدلاء:رتبیک» است] (
tuple)، با حداکثر ۲۰ عضو را به شیءهای پسیکی ([؟] معناء:پسیکی [آوایش: [[و:پسیکی|آواثاء:پسیکی]]؛ تلفظ «پسیکی»: 📥]) سریعتر ببدلَد ([؟] معناء:ببدلَد [آوایش: [[و:بدلدن|آواثاء:ببدلَد]]؛ تلفظ «بدلدن»: 📥]):
def my_func():
b =(1, 2) * 2
f = ['a', 'b'] * 3
print(my_func.__code__.co_consts)
(None, (1, 2, 1, 2), 'a', 'b', 3)
- شیءهای پسیک [؟ آوایش: [[و:پسیک|آواثاء:پسیک]] 📥؛ معنی «پسیک» به فارسی «معناء:پسیک» و معادل «پسیک» به انگلیسی «عدلاء:پسیک» است] پایای ([؟] معناء:پایای [آوایش: [[و:پایا|آواثاء:پایای]]؛ تلفظ «پایا»: 📥]) دگرشپذیر [؟ آوایش: [[و:دگرشپذیر|آواثاء:دگرشپذیر]] 📥؛ معنی «دگرشپذیر» به فارسی «معناء:دگرشپذیر» و معادل «دگرشپذیر» به انگلیسی «عدلاء:دگرشپذیر» است] در بخش شرط شرطینها [؟ آوایش: [[و:شرطین|آواثاء:شرطینها]] 📥؛ معنی «شرطینها» به فارسی «معناء:شرطینها» و معادل «شرطین» به انگلیسی «عدلاء:شرطین» است] و رلکنینها [؟ آوایش: [[و:رلکنین|آواثاء:رلکنینها]] 📥؛ معنی «رلکنینها» به فارسی «معناء:رلکنینها» و معادل «رلکنین» به انگلیسی «عدلاء:رلکنین» است] را به شیءهای دگرشناپذیر [؟ آوایش: [[و:دگرشناپذیر|آواثاء:دگرشناپذیر]] 📥؛ معنی «دگرشناپذیر» به فارسی «معناء:دگرشناپذیر» و معادل «دگرشناپذیر» به انگلیسی «عدلاء:دگرشناپذیر» است] سریعتر ببدلد ([؟] معناء:ببدلد [آوایش: [[و:بدلدن|آواثاء:ببدلد]]؛ تلفظ «بدلدن»: 📥]) -
listبهtupleوsetبهfrozenset:
def my_func(e):
if e in [1, 2, 3]:
pass
print(my_func.__code__.co_consts)
(None, (1, 2, 3))