Re: [Python] Domanda su import.

2024-02-21 Per discussione Giorgio Zoppi
Basare una import sulle performance e' un errore,
dopo ti trovi a fare unitest e fare monkey patching ovunque. L'import va
posto all'inizio a meno che non sei disperato. Di solito se e' grossa non
importi le funzioni perche e' un casino poi, cioe senza import from.
Un saluto,
Giorgio



Il giorno mar 20 feb 2024 alle ore 13:30 Massimiliano della Rovere <
massimiliano.dellarov...@gmail.com> ha scritto:

> Premesso che senza indicazioni più precise sul "peso" (RAM? CPU? Tempo?)
> della libreria, dell'elaborazione, dei dati grezzi e di quelli che dovranno
> essere prodotti è difficile dare una risposta.
>
> Se il tuo applicativo è basato su asyncio, potresti valutare di
> instanziare un concurrent.futures.ProcessPoolExecutor quando e dove serve,
> sfruttare più CPU per l'elaborazione e non sequestrare la CPU con delle
> coroutine che impiegano tanto tempo con elaborazione.
>
> Se parliamo del solito webserver (django, flask, ecc) e ipotizzando che tu
> non abbia SSE o websocket che sostanzialmente ti rimandano al caso
> precedente, creerei comunque un processo esterno i dei worker dedicati alla
> libreria e dal tuo applicativo contatterei il pool per avviare
> l'elaborazione, scrivendo poi il risultato in un luogo che sia accessibile
> dal server web per renderlo scaricabile dall'utente o in modo che il
> completamento del task possa essere rilevato dal programma che esponga il
> risultato in un'area apposita all'utente/i interessati.
>
> Se invece deve essere una soluzione tutta in uno, senza processi esterni,
> dovresti valutare i seguenti costo (costo può essere la RAM usata, la CPU
> usata, il tempo... valuta):
> 1. costo di import della libreria
> 2. costo di trasmissione (anche file su disco) dei dati alla libreria
> 3. costo di elaborazione dei dati
> 4. costo di trasmissione (anche file su disco) dei dati prodotti dalla
> libreria
> 5. costo di una richiesta gestita dal tuo programma quando non entra in
> gioco la libreria
> 6. la percentuale media di richieste che necessitano della libreria.
>
> chiamiamo 1..4 la somma dei costi da 1 a 4.
> Se 6 è basso e 1..4 è considerevolmente maggiore di 5... carica la
> libreria solo quando e dove serve.
> Se 6 è basso e 1..4 è simile a 5 carica la libreria a monte.
> Se 6 è medio alto, carica la libreria a monte,
>
> Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:
>
>> Ciao.
>>
>> Una questione di carattere generale.
>>
>>
>>
>> Devo usare una libreria abbastanza grossa. Però, non tutto il mio
>> programma la usa, ma solo una delle sue funzioni e queesta funzione
>> potrebbe essere chiamata una sola volta, più volte o anche non chiamata
>> affatto.
>>
>>
>>
>> Secondo voi, l’import di questa libreria è comunque meglio metterlo ad
>> inizio programma, o piuttosto all’interno della funzione interessata?
>>
>>
>>
>> Grazie.
>>
>>
>>
>> Gabry.
>>
>>
>>
>> Gabriele Battaglia (Gabe / Gabry) - IZ4APU
>>
>> --... ...--  -.. .  .. --.. - .- .--. ..-  - ..-  . .
>>
>> Sent from Outlook on Windows, Genus Bononiae's computer. (Libero)
>>
>>
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 
Life is a chess game - Anonymous.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Domanda su import.

2024-02-21 Per discussione Massimiliano Tornati
Ciao Gabriele,
le informazioni sono poche per darti un consiglio: tra le varie cose
1-bisogna valutare il rapporto tra il peso computazionale del tuo codice in
relazione al codice della libreria che devi caricare
2- la tipologia di funzioni che devi utilizzare( ricorsive o meno)
3- la quantità di accessi che devi fare alla libreria all'interno del codice

Di base ti consiglio a parità di tali valori di mettere l'import all'inizio
del codice cmq puoi fare sempre delle prove così che ne impari sempre di
più: questo è il mio metodo

Il giorno mar 20 feb 2024 alle ore 14:25 Carlo Miron  ha
scritto:

> Ciao Gabriele
>
> Il giorno mar 20 feb 2024 alle ore 13:21  ha scritto:
> >
> > Devo usare una libreria abbastanza grossa. Però, non tutto il mio
> programma la usa, ma solo una delle sue funzioni e queesta funzione
> potrebbe essere chiamata una sola volta, più volte o anche non chiamata
> affatto.
> > Secondo voi, l’import di questa libreria è comunque meglio metterlo ad
> inizio programma, o piuttosto all’interno della funzione interessata?
>
> A meno che l'importazione della libreria non impatti percettibilmente
> il tempo di caricamento del programma, ti consiglierei di metterlo
> all'inizio del codice.
> L'import all'interno della funzione in genere è un hack che deve
> essere giustificato (e commentato) a buona ragione.
>
> Buona giornata,
> ㎝
>
> --
>  THE 🍺-WARE LICENSE (Revision ㊷):
>  wrote this 📧. As long as you retain this notice you
> can
> do whatever you want with this stuff. If we meet some day, and you
> think this stuff is worth it, you can buy me a 🍺 in return. — Carlo
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>


-- 


mobile phone : +39 348 002 8107
tel: +39 0721 1630292
Per appuntamento: https://zcal.co/massimiliano_tornati

TORNATI PROJECT SRL
via Callegari 9-11
61122 Pesaro (PU)
P.IVA/C.F.  02533270415
site: TORNATI PROJECT 
site:https://itofood.com/





e-mail t...@tornatiproject.com
Whatapp:https://wa.me/message/G6CHK7323ZODI1

The information contained in this e-mail and any attachment is
confidential. It is intended only for the named addressee(s).
If you are not the named addressee(s) please notify us immediately at the
e-mail  t...@tornatiproject.com and then destroy this message.The copy or
distribution of the contents to any other person other than the intended
addressee(s) is strictly prohibited and will be punished according to  the
relevant laws on privacy and Intellectual Property.

Think before you print!
Before you print, please consider if it is necessary. Printing uses
electricity, ink and paper.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python