* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 11, 2024, 04:11:19 am

Inserisci il nome utente, la password e la durata della sessione.

370 Visitatori, 0 Utenti

Autore Topic: Aumentare la memoria disponibile  (Letto 3554 volte)

gaudenzi

  • Newbie
  • *
  • Post: 14
  • Karma: +0/-0
Aumentare la memoria disponibile
« il: Gennaio 30, 2015, 12:29:54 pm »
Buongiorno a tutti.
Avrei bisogno di utilizzare in alcuni programmi di calcolo scientifico un numero di memorie di tipo extended o almeno double il più elevato possibile. Vengono utilizzate array bidimensionali sia statiche che dinamiche. Lazarus mi permette di allocare meno di un milione di memorie contro i 40/50 milioni che posso allocare senza problemi con Delphi 5. Chiedo se qualcuno conosce le istruzioni per dedicare maggiore memoria a Lazarus. Grazie.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2875
  • Karma: +20/-4
Re:Aumentare la memoria disponibile
« Risposta #1 il: Febbraio 02, 2015, 11:06:04 am »
poco fa ho fatto un test del genere

Codice: [Seleziona]
TTest = record
   a1,a2: extended
end;

ho poi dichiarato un array di 40 milioni di elementi ( x: array[1..40000000] of  TTest) e non ho avuto né errori di compilazione né problemi al lancio dell'eseguibile.
Non ho fatto prove con array dinamici.

Su che  piattaforma lavori (32/64 bit, ram, ecc..) e come dichiari gli array?
Imagination is more important than knowledge (A.Einstein)

gaudenzi

  • Newbie
  • *
  • Post: 14
  • Karma: +0/-0
Re:Aumentare la memoria disponibile
« Risposta #2 il: Febbraio 03, 2015, 11:47:07 am »
Grazie per il messaggio.

Ecco l'impostazione del codice:

unit Unit1;
{$mode objfpc}{$H+}

interface
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ComCtrls, ExtCtrls, Menus, Math;

type
  { TForm1 }
  TForm1 = class(TForm)
  seguono numerose dichiarazioni di procedure, bottoni, edit, ecc.

type
   matrices=array[-210..210,-610..610] of extended;
   matricesr=array[-1010..1010,-100..100] of extended;   

nel programma vengono usate 5 variabili di tipo matrices e 4 di tipo matricesr. Se aumento le dimensioni il programma si blocca in esecuzione.

Lavoro sotto Windows 7 con 4G di Ram a 64bit con Lazarus 1.2.6   i386-win32-win64/win64

Saluti.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2875
  • Karma: +20/-4
Re:Aumentare la memoria disponibile
« Risposta #3 il: Febbraio 05, 2015, 09:06:41 am »
ho provato in una virtualbox con win7 32bit ed un vecchio compilatore fpc: ho avuto problemi anche io
questi giorni non ho molto tempo ma appena possibile proverò anche sotto linux x64 con un compilatore recente

in effetti sembra un bug ma prima bisogna essere sicuri di usare una versione recente di fpc e controllare nel bug tracker se è già stato segnalato
Imagination is more important than knowledge (A.Einstein)

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18806
  • Topic in totale: 2239
  • Online Today: 542
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 370
Total: 370

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.