Afbeeldingsbron: pixabay.com

Hoe Python snel te maken als Psyco

Hey jongens, welkom op mijn volgende blog van Python. Maar vandaag zal ik het niet alleen over Python hebben. Dus voordat ik verder ga, neem ik aan dat je al bits en * bytes kent over python. Als je een beginner bent, kun je naar mijn andere blogs zoeken, leren over python en dan contact met ons opnemen. nu bespreken we het onderwerp Python snel als Psyco.

Als je een ervaren programmeur bent in een ander vakgebied, en je denkt dat je de basis kent en nu je deze blog kunt lezen, stel jezelf dan één vraag, weet je wat Psyco is? Als je op dit moment denkt dat dit "Psyco" gek betekent, dan is dit spul niet voor jou.

Je hebt nog steeds veel basisdingen vermeden of je houdt jezelf voor de gek door te vertellen dat je een ervaren programmeur bent. Geloof me, ik zal proberen deze blog zo gemakkelijk mogelijk te maken en zal proberen niemand te beledigen. Maar als je de basis niet goed hebt, zal het gewoon moeilijker voor je zijn om dit te begrijpen.

Laat het harde deel buiten beschouwing, je begint zelfs te denken dat python fast stuff veel moeilijker is dan elke andere programmering die absoluut verkeerd is. Dus nu weten we wat, laten we verder gaan, zullen we?

Wat is Psyco?

Wat is Psyco? Psyco maakt python snel. Verward? Ja, ook ik was in de war toen ik dat voor het eerst hoorde. Python is al snel, waarom zou je dan psyco gebruiken? Dat is waarom ik zei. Deze blog is niet voor noobs en beginners. Als je al geruime tijd in Python Run hebt gecodeerd, waardoor je een groot aantal codes hebt gemaakt, weet je dat Python snel een compacte en strikte codering nodig heeft. Met het juiste type codering kunt u het snel en compact maken.

Maar het heeft tijd en zo nodig. Je kunt niet uit het niets compacte en foutloze codes maken. En dat is waar Psyco ontstaat. Psyco is slechts een python snelle uitbreidingsmodule die de uitvoering van een python run code versnelt. Dus je kunt nu in de war zijn, module waardoor een Python-code sneller werkt? Ja, precies dat is het. Laten we het grotere plaatje bekijken.

Python en zijn ware aard

Als je eerder in Java of C hebt gecodeerd, denk je misschien dat python run extreem snel is dan de anderen. Maar daar heb je het mis. In termen van ruwe prestaties is python zeker langzamer dan C, Java of C #. Maar python staat er niet om bekend snelheid te hebben in ruwe prestaties.

Alleen beginners of noobs doen ruwe codering. Professionele mensen maken de juiste codering en de juiste inspringingen *. Wanneer u een correct gecompileerde code vergelijkt en het totale geheugengebruik, de eerste opstarttijd en de laadtijd meet, is de Python-run op dat moment extreem snel.

Trouwens, als je probeert codes te schrijven voor het maken van een server of zo, is Java extreem snel, zelfs sneller dan C. Dit is mogelijk omdat de Java Virtual Machine hot-byte-code kan compileren naar machinecode. Terwijl dit wordt gedaan, kan het ten volle profiteren van elke functie van de CPU.

Dit is meestal niet het geval met C, althans tot je je laboratoriumomgeving verlaat. Neem nu aan dat u een tiental geoptimaliseerde builds naar uw klanten distribueert - dat werkt gewoon niet.

Laten we nu teruggaan naar ons belangrijkste punt als opstarttijd een probleem is (wat bijvoorbeeld geen probleem is voor een servertoepassing). Java is misschien niet het beste alternatief. Het kan ook afhangen van waar uw hot-codegebieden zijn, bijvoorbeeld: als ze zich in de eigen bibliotheken bevinden met een Python-snelcode om ze eenvoudig aan elkaar te lijmen, kunt u ook snel C-achtige prestaties krijgen met Python. Maar toch, scripttalen zijn meestal langzamer - althans meestal.

Aanbevolen cursussen

  • VB.NET online cursus
  • Online certificeringstraining in data science
  • Professionele ISTQB-cursus
  • Kali Linux-programma

Psyco - Is precies hoe het klinkt

Ja, dat heb je goed gelezen. Laten we nu teruggaan naar ons hoofdonderwerp. Dit is wat de psyco-ontwikkelaars op hun webpagina definiëren: -

“Zie Psyco als een soort just-in-time (JIT) compiler, een beetje zoals wat er voor andere talen bestaat, die machinecode direct uitzenden in plaats van je Python-programma stap voor stap te interpreteren. Het verschil met de traditionele benadering van JIT-compilers is dat Psyco verschillende versies van dezelfde blokken schrijft (een blok is een beetje een functie), die zijn geoptimaliseerd door zich te specialiseren in sommige soorten variabelen (een "soort" kan een type betekenen, maar het is algemener). Het resultaat is dat uw ongewijzigde Python-programma's sneller werken.

2x tot 100x versnellingen, meestal 4x, met een ongewijzigde Python-interpreter en ongewijzigde broncode, alleen een dynamisch laadbare C-uitbreidingsmodule. ”

Kortom, om dit in een eenvoudige verklaring opnieuw te formuleren, geeft Psyco u meer Java-achtige prestaties. U krijgt langzamere starttijden en hoger geheugengebruik in ruil voor snellere algoritmen.

Dat gezegd hebbende, er zijn bepaalde dingen die je moet onthouden bij het testen van talen zoals Java en Python. De code in deze talen kan vaak aanzienlijk worden versneld door constructies te gebruiken die meer geschikt zijn voor de taal (bijv. Lijstbegrippen in Python fast, of met char () en String Builder voor bepaalde String-bewerkingen in Java).

Bovendien kan het gebruik van Psyco voor Python snel de snelheid van het programma aanzienlijk verhogen. En dan is er nog het hele probleem van het gebruik van geschikte datastructuren en het in de gaten houden van de runtime-complexiteit van uw code.

Om python psyco te begrijpen, moet men een goed begrip hebben van de functie eval_frame () van python. Wat python psyco doet, is de functie eval_frame van python converteren naar een samengestelde evaluatie-eenheid, en psyco gebruikt hierbij veel geheugen. Het gebruik van psyco is veel eenvoudiger dan het uit te leggen.

Om psyco eenvoudig te gebruiken, downloadt u de psyco-module van sourceforge.net en bewaart u deze code aan het begin van uw allereerste code:

import psyco ; psyco.jit()

from psyco.classes import *

En dan kunt u de volgende opdracht gebruiken om het gedrag van psyco nauwkeuriger te richten:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Als dit spul in het begin niet met je werkt, moet je geduld hebben. Het vereist vallen en opstaan. U kunt niet direct verwachten dat uw programma wordt uitgevoerd zoals Usain Bolt. Bespaar me het sarcastische onbeleefde gedrag, maar zo werkt het.

In werkelijkheid verandert of wijzigt python psyco uw code niet om hem slimmer te maken. Het profileert nauwelijks uw code om specifieker te zijn. Het doet minimale optimalisatie om het zo dicht mogelijk bij de machinecode te brengen.

Hoewel python psyco je programma's zo snel maakt als C, zijn er enkele beperkingen en nadelen aan verbonden. Hier volgen enkele, die ik hieronder heb opgesomd:

  1. Psyco is nu verouderd, niet onderhouden en dood. Vervanging is PyPy
  2. Psyco heeft veel problemen met zelfs python 2.7. Maar het werkt veel beter en sneller in v2.5
  3. Psyco werkt niet op 64-bit machines. Maar men kan wel een virtuele machine met i386-architectuur installeren en laten werken.
  4. Mac OSX wordt standaard geleverd met 64-bits python. Je moet python x86 vanuit de bron opnieuw compileren om Psyco te laten werken.

Hoewel ze zoveel problemen hebben, gebruiken mensen nog steeds Psyco in plaats van PyPy. Maar nogmaals, als je het mij vraagt, is PyPy een geweldig alternatief voor Psyco. Psyco werkt als een Just In Time-compiler, maar PyPy heeft een eigen Just-in-time compiler. Waar Psyco veel geheugen gebruikt, gebruikt PyPy veel minder geheugen dan Psyco. PyPy is zelfs nog meer compatibel met frameworks zoals Django en Twisted.

Dus na dit alles, wat ik ook zeg, het is voor eigen gebruik. Mensen met een achtergrond van Psyco zullen u altijd aanraden om Psyco te gebruiken, terwijl mensen die snelheid willen PyPy nodig hebben. Maar laat me iets citeren.

"Hoewel je je goed genoeg voelt met motorfietsen zoals R1 of Hayabusa, heeft soms het rijden op een Harley Davidson zijn eigen plezier"

Het werkt op dezelfde manier met Psyco en PyPy. Dus uiteindelijk, zonder veel ophef, zou ik willen voorstellen om beide in het begin te gebruiken en vervolgens door te gaan met wat je je op je gemak voelt.

Aanbevolen artikelen:

Hier zijn enkele artikelen die je zullen helpen om meer details over de Python Fast And python psyco te krijgen, dus ga gewoon via de link.

  1. Linux versus Ubuntu-verschillen
  2. 25 meest verbazingwekkende vragen en antwoorden over het interview met Python
  3. Carrières in Python
  4. Python vs Node.js
  5. Handige gids voor Kali Linux vs Ubuntu
  6. Lijst met Python-compilers