Repository 32bit  Forum
Repository 64bit  Wiki

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.

reindirizzare output da file a ram

Messaggioda ccts2002 » lun nov 22, 2010 17:46

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
ccts2002
Linux 2.0
Linux 2.0
 
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania

Re: reindirizzare output da file a ram

Messaggioda 414N » lun nov 22, 2010 18:28

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
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: reindirizzare output da file a ram

Messaggioda albatros » lun nov 22, 2010 18:36

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
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Re: reindirizzare output da file a ram

Messaggioda ccts2002 » lun nov 22, 2010 23:09

purtroppo sono in ambiente windows...
@ albatros
riesci a darmi qualche informazione in più? qualche link? sembrerebbe proprio quello che mi serve...
Avatar utente
ccts2002
Linux 2.0
Linux 2.0
 
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania

Re: reindirizzare output da file a ram

Messaggioda albatros » mar nov 23, 2010 1:48

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
albatros
Iper Master
Iper Master
 
Messaggi: 2056
Iscritto il: sab feb 04, 2006 13:59
Località: 43°52' N 11°32' E
Slackware: current 64bit
Kernel: 3.8.4
Distribuzione: ubuntu 12.04

Re: reindirizzare output da file a ram

Messaggioda ccts2002 » mar nov 23, 2010 9:43

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

grazie ancora!
Avatar utente
ccts2002
Linux 2.0
Linux 2.0
 
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite