Erros, bugs, perguntas - página 1336

 

É todo este o problema por causa de 24 bytes? Desculpe, está a tentar escrever software de MT numa calculadora :) ?

Claro que peço desculpa, mas ao sugar o problema dos seus dedos, está a bloquear as perguntas de outras pessoas, que raramente são notadas pelos representantes dos desenvolvedores.

 
Alexey Navoykov:

Então, porque é que o destruidor não deveria ser optimizado? Temos de armazenar 8 bytes extra só por causa disso...

Bem, só não sei como é que é implementado aí. Por exemplo, se tiver um conjunto de objectos:

As referências (apontadores) para cada elemento são armazenadas no sistema?

Mas não se pode levar um ponteiro para uma estrutura e isso reduz a conveniência da sua utilização. É por isso que por vezes é preciso fazer uma escolha dolorosa... Se se conseguir reduzir o tamanho da classe, isso seria maravilhoso. E se também se tiver um ponteiro para a estrutura, tudo ficará bem).

Crie objectos dinamicamente, com o novo operador, e não tem de criar objectos vazios de todo.

A estrutura não pode ser referenciada por um ponteiro, mas a estrutura pode ser passada por referência, por exemplo: OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - na maioria dos casos, isto é suficiente.

 
Konstantin Karpov:

É todo este o problema por causa de 24 bytes? Desculpe, está a tentar escrever software de MT numa calculadora :) ?

Claro que peço desculpa, mas ao sugar o problema dos seus dedos, está a bloquear as perguntas de outras pessoas, que raramente são notadas pelos representantes dos desenvolvedores.

Saiba o que são matrizes para começar.
 
Alexey Navoykov:
É melhor estudar arrays para começar.

Bem, estudei-os há alguns anos :) se colocar objectos de classe numa matriz, depois criar uma lista de apontadores e criar objectos de classe na "pilha", foi-lhe dito com razão sobre o novo operador...

Todos os dados que tenho são muito grandes e são originalmente tratados por objectos de classe, localizados na "pilha". O meu PC tem 8 gigas de memória e posso utilizar totalmente esta memória, mesmo que uma vez tenha cometido um erro no algoritmo e a memória tenha vazado, a memória ficou entupida a 95% e depois o sistema operativo começou a limpar tudo por si só.

Por isso, é melhor não fazeres de rapaz ofendido, mas olhares através de todas as características da língua e serás bem sucedido :)

 
Vasiliy Sokolov:

Criar objectos dinamicamente usando um novo operador, e não tem de criar objectos vazios de todo.

A estrutura não pode ser referenciada por um ponteiro, mas a estrutura pode ser passada por referência, por exemplo: OrderSend(MqlTradeRequest& request, MqlTradeResult& result) - na grande maioria dos casos, isto é suficiente.

Para que serve este conselho? Parece tê-lo lido apenas através de uma linha e escrito algo o mais depressa possível. Estamos a falar do tamanho da classe. Este tamanho não depende de como o objecto é criado, estaticamente ou dinamicamente. E "criar objectos vazios" - não percebo o que quero dizer. E passar argumentos para funções também está absolutamente deslocado aqui. Acha que somos crianças pequenas que não sabem como os objectos são passados para funções?

 
Konstantin Karpov:

Bem, estudei-os há alguns anos :) se colocar objectos de classe numa matriz, depois criar uma lista de apontadores e criar objectos de classe na "pilha", foi-lhe dito com razão sobre o novo operador...

Todos os dados que tenho são grandes, inicialmente tratados por objectos de classe, localizados na "pilha", a memória do PC é de 8 gigabytes e posso ver como esta memória é utilizada à sua capacidade, mesmo quando uma vez cometi um erro no algoritmo e a memória vaza, a memória está entupida a 95%, e depois o próprio sistema operativo começou a limpar tudo.

Por isso, é melhor não brincar ao rapaz ofendido, mas olhar através de todas as possibilidades da língua e terá tudo :)

Outro tipo inteligente... Ele começou com calculadoras e agora não quer saber de 8 gigs. Sobre apontadores e pilha - para que serve o seu brilhante conhecimento? Alguém aqui já perguntou o que são apontadores? Ou é apenas uma conversa para toda a vida?

Em geral, rapazes, por favor, peçam convincentemente para colocar noutra linha, por favor, ninguém pediu o vosso conselho aqui. O diálogo é especificamente com o promotor.

 
Alexey Navoykov:

Qual é o objectivo deste conselho? É como se o tivesse lido de uma linha e mal pudesse esperar para escrever algo. Estamos a falar do tamanho da classe. Este tamanho não depende de como o objecto é criado, estaticamente ou dinamicamente. E "criar objectos vazios" - não percebo o que quero dizer. E passar argumentos para funções também está absolutamente deslocado aqui. Acha que somos crianças pequenas que não sabem como os objectos são passados para funções?

Ouve, espertalhão, vai aprender o básico da programação primeiro em ambientes geridos pela memória: foi-te claramente dada a resposta de que uma aula, mesmo uma aula vazia, contém certos meta dados. O seu tamanho e organização são óptimos. Quem é você para ensinar os programadores a escrever um compilador e a armazenar dados correctamente!? Se quiser salvar alguns bytes, vá construir a sua bicicleta em C ou Assembler.

Há muitos tipos inteligentes que lêem "C para Principiantes" e depois dão-lhe conselhos.

 
Alexey Navoykov:

Outro tipo inteligente... Ele começou com a calculadora, agora não quer saber de 8 gigs. Sobre apontadores e pilha - porquê este seu brilhante conhecimento? Alguém aqui já perguntou o que são apontadores? Ou é apenas uma conversa para toda a vida?

Em geral, rapazes, convincentemente, pedem-vos para inundar em algum outro fio, por favor, ninguém pediu aqui o vosso conselho. O diálogo é especificamente com o promotor.

A julgar pelas suas declarações, trabalha com conjuntos de objectos de classe, que são tão numerosos que o seu tamanho enche a memória do terminal, que deve ser terrivelmente lento, caso contrário não teria levantado esta questão. Penso que escolheu estrategicamente uma abordagem errada para trabalhar com os seus dados e que lhe foram dados muitos conselhos sobre isso:

- atribuir memória para os seus objectos na "pilha" e a memória terminal não será entupida

- não guardar grandes quantidades de informação na memória e carregar os dados para o disco para os salvar de uma perda acidental em caso de falha - também pode carregar programticamente, se necessário

E agravar-se com conselhos não vale a pena, se quiser comunicar apenas com o promotor, existe um balcão de atendimento, mas há muitas pessoas aqui :)

 
Renat Fatkhullin:
Tenho uma pergunta - quanta memória é atribuída pelo terminal (MT4, MT5x86 e MT5x64) para EAs?
 

Os programadores não são sem humor.

Parece-me um "download", e uma espécie de "download" de árvores balançam para a direita ou para a esquerda.