Errori, bug, domande - pagina 1031

 
fyords:

Ho notato che solo 3 degli 8 agenti possono essere eseguiti allo stesso tempo quando si ricevono compiti dal cloud.
Anche se se si esegue il test in parallelo, anche gli altri agenti sono abilitati.

È così che dovrebbe essere?

Li ho avuti tutti e sei finché non ne ho disattivato uno un paio di giorni fa perché la CPU si stava surriscaldando (la stanza è calda). Ora cinque stanno lavorando, il volo è normale.
 
MetaDriver:
Li avevo tutti e sei funzionanti finché non ne ho disattivato uno un paio di giorni fa - la CPU si stava surriscaldando (fa caldo nella stanza). Ora cinque stanno lavorando, il volo è normale.

Scusa, falso allarme :)
È solo che ci sono solo 3 agenti in esecuzione, ma stanno rimbalzando su diversi core.

In qualche modo si è persa la capacità del sistema di distribuire il carico in modo uniforme...

 
Al_key:
.............

Come va lì dentro?

Non posso riprodurre la tua situazione per una semplice ragione: non ho un :

   file_handle = FileOpen("CSV - макроэкономика и госкорпстат/Existing Home Sales Change.csv",FILE_READ|FILE_CSV|FILE_ANSI,',');
 
mql5:
Uno dei dispositivi OpenCL ha un errore di driver e il terminale va in crash quando si cerca di usarlo.

Fate riferimento al ramo del registro [HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors] per indovinare quali dispositivi OpenCL avete.

Si raccomanda di trovare gli aggiornamenti per loro.

Strano, aggiornato i driver. Dopo l'aggiornamento due terminali sono partiti senza problemi, poi hanno ricominciato a dare questo errore.

(nvidia geforce 710m versione 320.49)


Inizializzazione terminale OpenCL saltata a causa di un errore critico, si prega di aggiornare i driver OpenCL


Come si può controllare se il driver funziona o no in qualche altro modo?

 

Scaricato intel_sdk_per_ocl_applications_2013_x64 Ora sembra funzionare.

2013.08.05 09:15:38 Dispositivo OpenCL #1: NVIDIA Corporation GeForce 710M GPU con OpenCL 1.1 (2 unità, 1550 MHz, 1024 Mb, versione 320.49, rating 181)
2013.08.05 09:15:38 Dispositivo OpenCL #0: Intel(R) Corporation Intel(R) Pentium(R) CPU B960 @ 2.20GHz con OpenCL 1.2 (2 unità, 2200 MHz, 2885 Mb, versione 1.2, rating 13)

 
Dal Riferimento MQL5:

Qualsiasi carattere singolo racchiuso tra virgolette singole o codice esadecimale ASCII come 'x10' è una costante di carattere ed è di tipo ushort.

class A {
public:
        void operator<<( ushort ch ) {}
        void operator<<( int ch ) {}
};

void OnStart()
{
        A a;
        a << '5'; // ошибка
        a << (ushort)'5'; // нормально
}
Sorge quindi la domanda: perché il compilatore non può distinguere ushort da int - senza alcuna indicazione esplicita?
 
A100:
Dal Riferimento MQL5:

Qualsiasi carattere singolo racchiuso tra virgolette singole o codice esadecimale ASCII come 'x10' è una costante di carattere ed è di tipo ushort.

Sorge la domanda: perché il compilatore non può distinguere tra ushort e int, senza un'indicazione esplicita?

Stai leggendo la documentazione in modo troppo selettivo

Fondamenti del linguaggio - Tipi di dati - Conversione dei tipi

I tipi di dati char, uchar, short e ushort sono convertiti incondizionatamente al tipo int nelle operazioni.

Correttamente, si dovrebbe lasciare una sola operazione, int, sovraccaricata. Altrimenti, si può ottenere un sacco di tutti i tipi di effetti casuali

 
stringo:

Stai leggendo la documentazione in modo troppo selettivo

Basi del linguaggio - tipi di dati - conversione dei tipi

Vengono dati solo dove è necessario.
void OnStart()
{
        A a;
        ushort ch = '5';
        a << ch;
}

Qui nulla è dato - tutto funziona.

La questione è che '5' è di tipo ushort

 
A100:
Vengono lanciati solo in quei posti dove è necessario.

Qui nulla è dato - tutto funziona.

Il problema è che '5' è di tipo ushort.

Rimuovere una delle operazioni sovraccaricate (qualsiasi!) e non c'è dolore
 
Sì, a proposito, cosa volevi dire cercando di organizzare lo spostamento a sinistra a 0x35, cioè 48 in forma decimale (che è il numero a cui si converte il '5' letterale)?