reindirizzare output da file a ram

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
ccts2002
Linux 1.x
Linux 1.x
Messaggi: 155
Iscritto il: gio 9 nov 2006, 23:20
Località: milano - trieste - catania
Contatta:

reindirizzare output da file a ram

Messaggio da ccts2002 »

Ciao a tutti!
l'argomento non è proprio riguardante la programmazione, ma penso sia abbastanza inerente! chiedo venia in anticipo!
ho un problema con un programma di simulazioni che usiamo in ufficio...ovviamente a sorgente chiuso!
il programma si occupa di simulazioni nel tempo di operazioni marine. il problema è che durante la simulazione scrive continuamente su un file binario (creato da lui autonomamente) dell'output che non interessa facendo si (penso sia questa la causa principale) che la durata della simulazione sia notevole. c'è un modo per "ingannare" il software e farlo scrivere in RAM (che penso sia più veloce rispetto alla scrittura su disco) in modo da diminuire i tempi? o qualche altro metodo che ottenga lo stesso scopo...
tempo fa avevo visto delle librerie (non ho sottomano il link, ora magari lo cerco) che fanno questo, ma bisogna compilare i sorgenti con queste librerie e non avendo il sorgente diventa un pò difficile...

spero di essere stato chiaro!

grazie in anticipo!

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: reindirizzare output da file a ram

Messaggio da 414N »

Sei su Linux,o, comunque, ambiente *NIX?
Se il file che apre per scrivere tutto il suo sproloquio di roba è sempre quello (intendo come percorso e nome) e non viene cancellato al termine della scrittura dall'applicazione stessa, per me te la cavi con un semplice

Codice: Seleziona tutto

rm file_inutile
ln -s /dev/null file_inutile
Tutto quello che ci verrà scritto sopra andrà nel limbo... :badgrin:

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Re: reindirizzare output da file a ram

Messaggio da albatros »

Nel caso che al programma possano servire i dati che scrive in output, potresti fargli usare un disco ram; chiaramente se il calcolatore si pianta, questi file di output li perdi ...

Avatar utente
ccts2002
Linux 1.x
Linux 1.x
Messaggi: 155
Iscritto il: gio 9 nov 2006, 23:20
Località: milano - trieste - catania
Contatta:

Re: reindirizzare output da file a ram

Messaggio da ccts2002 »

purtroppo sono in ambiente windows...
@ albatros
riesci a darmi qualche informazione in più? qualche link? sembrerebbe proprio quello che mi serve...

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2093
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 5.19.0
Desktop: gnome and lxqt
Distribuzione: ubuntu 22.04
Località: Darmstadt - Germania

Re: reindirizzare output da file a ram

Messaggio da albatros »

E' da diverso tempo che non uso ramdisk, sotto linux quando mi servivano facevo così (da root) (esempio per un mini disco da 2 MB):

Codice: Seleziona tutto

# modprobe rd rd_size=2000

# mke2fs -m0 /dev/ram0

mke2fs 1.41.12 (17-May-2010)
Etichetta del filesystem=
Tipo SO: Linux
Dimensione blocco=1024 (log=0)
Dimensione frammento=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
256 inode, 2000 blocchi
0 blocchi (0.00%) riservati per l'utente root
Primo blocco dati=1
Maximum filesystem blocks=2097152
1 block group
8192 blocchi per gruppo, 8192 frammenti per gruppo
256 inode per gruppo

Scrittura delle tavole degli inode: fatto                           
Scrittura delle informazioni dei superblocchi e dell'accounting del filesystem:
fatto

Questo filesystem verrà automaticamente controllato ogni 31 mount, o
180 giorni, a seconda di quale venga prima. Usare tune2fs -c o -i per cambiare.

# mount /dev/ram0 /a
In pratica in questo esempio carico il modulo del kernel dicendogli che voglio ramdisk da 2000KB (la ram viene effettivamente impiegata solo se si usano) poi formatto il filesystem sul primo ram disk (in questo caso ho fatto un filesystem ext2), poi lo monto su una directory e da quel punto in poi lo uso come un qualsiasi altro filesystem, con il vantaggio che è più veloce, ma con lo svantaggio (o l'ulteriore vantaggio, dipende dai punti di vista...) che con lo spegnimento del computer tutti i dati ivi contenuti vanno persi.

Su windows non li ho mai usati e adesso, a parte il pochissimo tempo disponibile e l'ora tarda, non posso neanche provare perché non ho macchine con windows, però li ho usati anni fa in ambiente dos, quindi quasi sicuramente sono possibili anche sotto windows...

Comunque, penso che cercando un po' in rete tu possa trovare le informazioni che cerchi...

Scusa, mi dispiace non esserti di maggiore aiuto...

Avatar utente
ccts2002
Linux 1.x
Linux 1.x
Messaggi: 155
Iscritto il: gio 9 nov 2006, 23:20
Località: milano - trieste - catania
Contatta:

Re: reindirizzare output da file a ram

Messaggio da ccts2002 »

grazie! proprio quello che mi serviva! provo a dare un'occhiata in giro...

grazie ancora!

Rispondi