• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Kimico

[Discussão]

13 mensagens neste tópico

"Cache output" em $_SESSION ou file_put_contents"(distinguindo users) ?

Não respondam o que eu responderia... "memória..."

file_put_contents <- porque é mais rápido que o fopen etc..

O assunto é vago, é o objectivo...

Quero ver porrada XD ;):)

Edit: discussão e não o erro de sintaxe que tinha cometido, a função n era reconhecida. ^^ ty: Nazgulled

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sabia que o file_put_contents() era mais rápido que o fopen... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sabia que o file_put_contents() era mais rápido que o fopen... ;)

Segundo um estudo de um amigo, espero que ele esteja correto para n estar a dizer trampa, caso esteja ele leva xD.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Description

int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] )

This function is identical to calling fopen(), fwrite() and fclose() successively to write data to a file.

E por estes lados escreve-se "discussão" ou isso faz parte do pseudo acordo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E por estes lados escreve-se "discussão" ou isso faz parte do pseudo acordo?

Corrigido ^^ e obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz um ciclo de alguns milhares de ficheiros com o file_put_contents e o fopen e fwrite, e fput... ganhou o file_put_contents

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

És tu o amigo do Kimico? ;)

E ganhou com quantos milissegundos de diferença? É que se a diferença for mínima...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta:

for($i = 1; $i < 50000; $i++) file_put_contents("ois.txt", "ois");
//e
for($i = 1; $i < 50000; $i++) fwrite(fopen("ois.txt", "w"), "ois");

Os 2 corridos 1 a seguir ao outro:

[djthyrax@dawn ~]$ time php ois.php

real 0m8.857s

user 0m0.647s

sys 0m3.676s

[djthyrax@dawn ~]$ time php ois.php

real 0m9.097s

user 0m0.610s

sys 0m3.763s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

És tu o amigo do Kimico? ;)

E ganhou com quantos milissegundos de diferença? É que se a diferença for mínima...

Por acaso até é... meu colega de equipa e muito bom programador, não se julga bom, eu considero-o bom, eu também posso ser muito mau... quem sabe... né? ;)

Afinal de contas... é apenas mais um escritor de código...

Pois é rapaz a diferença é mínima... mas quando tiveres a comer com 100 pedidos apenas ao teu projecto, e tens de fazer 20 "fopens" tas a peder quanto tempo? Pois... já sei, vais-me dizer que depois do SO's(caso "configurado" para isso) vai fazer cache ao file e os acesso vao ser muito mais rápidos.... Ias? Pois não disses-te digo eu.

Agora segundo o djthyrax dá 100ms +/- certo?

Tens um P XEON... com 2GB de ram. 3000 Sites a correr, onde tens de abir MONTES de ficheiros, suponhamos 10, se tiver "meio request" por site são 1500 sites, mas como não têm e teem uma media de 100, multiplica 100*10*100=10000ms (hooooooooooooo 10 segundos?! Dasss! é muito né?) ainda é mínima?

Isto teoricamente, praticamente sabemos ou sei que é mais rápido...

Se isso não chegar, pega numa BD(em lan) que tem cerca de 500.000 * 10 + (+/-) 200.000 registos e mete tudo isso a funcionar... não é fácil, pelo menos para mim... Mas isso depende do escritor de código.

Já agora:

kimico@mail:~$ time php oisfput.php

real    0m0.910s

user    0m0.610s

sys    0m0.290s

kimico@mail:~$ time php oisfopen.php

real    0m1.000s

user    0m0.740s

sys    0m0.250s

Tempos abaixo = lixei-me corri dois ao mesmo tempo xD.

kimico@mail:~$ time php oisfput.php

real    0m1.110s

user    0m0.690s

sys    0m0.310s

código = ao djthyrax.

Antes de mandares bitates testa, e tira a razão, simplesmente não mandes para o ar...

o djthyrax cometeum um erro, que todos cometemos, acho eu, considero-o um erro, não sei se será...: abrir 50k vezes o ficheiro. (eu também o cometia, mas tava com atenção ^^) mas está correcto se assumirmos que são 50k de files "diferentes".

Além de que vais ter problemas se escreveres fwrite  ( $hFile  , $sString > 27kB , $iLen ).

capturaecra1oq6.png

Dados modificados porque ninguém tem nada a ver com isso :D.

Parse á página + acesso a dados(mysql/sqlserver) + acesso webservices + js do lado do servidor (um dia destes fasso um tuto disto, mas digo-vos é estúpido fazer isso ^^) + identação de código html + "condicoes de template" ({IF {item id} > {vinte}}<br>Olá mundo{/if}) ou ciclos do tipo {loop a}{item B}{loop a} 5ms de segundo depois de estar em cache, é bom mau +/-? queria que alguém me desse uma noção, pessoalmente orgulho-me desse tempo :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não foi erro nenhum o abrir várias vezes o file, apenas repliquei o funcionamento do file_put_contents() para tornar mais visiveis as diferenças. Mas olha que se abrisses apenas 1 vez o file, para replicares o funcionamento do file_put_contents() tinhas de fazer fseek(), que é mais dispendioso em termos de tempo de execução (embora poupe na escrita no disco) que abrires de novo:

$h = fopen("ois.txt", "w");
for($i = 1; $i < 50000; $i++){
    fwrite($h, "ois");
    fseek($h, 0);
}

[djthyrax@dawn ~]$ time php ois.php

real 0m0.890s

user 0m0.120s

sys 0m0.297s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não fazia a ideia que um fseek era carregado, isto também se deve ao facto de não lidar muito com ficheiros... ou mandar :mad:(pedir  :smoke:) para fazerem testes ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso até é... meu colega de equipa e muito bom programador, não se julga bom, eu considero-o bom, eu também posso ser muito mau... quem sabe... né? ;)

Afinal de contas... é apenas mais um escritor de código...

WTF? Mas eu perguntei alguma coisa?

Eu só acho que vocês perdem demasiado tempo com estas pequenas mariquices quando o mais provável é nunca terão oportunidade de se quer se preocuparem em qual o melhor método a usar para um projecto a sério.

E para já, eu não mandei bitaites nenhuns, e se tivesse mandado? Ficaste ofendido? Azar o teu... Muito menos tirei a razão alguém.

A ordem dos 100ms para mim, não é nada. Nunca me preocupei com isso, nem vou preocupar. Já disse noutros tópicos e volto a repetir, nós caminhamos para melhores tecnologias, não para piores. Não vai ser uns milissegundos que me vão chatear.

E mais, não sei porquê, mas não imagino se quer um projecto que precise de estar sempre a abrir ficheiros e assim onde exista assim tantos pedidos como falas. Como disse no inicio, preocupam-se de mais com coisas que se calhar nunca vão por em prática de forma que tirem partido delas.

Entre as alternativas, eu usava o file_put_contents, não por ser mais rápido, porque a diferença, para mim, é insignificante, mas por ser mais simples de se usar/programar.

Tens um P XEON... com 2GB de ram. 3000 Sites a correr, onde tens de abir MONTES de ficheiros, suponhamos 10, se tiver "meio request" por site são 1500 sites, mas como não têm e teem uma media de 100, multiplica 100*10*100=10000ms (hooooooooooooo 10 segundos?! Dasss! é muito né?) ainda é mínima?

Yep, continua minima... Como disse, quando tiveres um projecto a sério em que estes dados que das aqui se tornem reais, avisa-me...

Parse á página + acesso a dados(mysql/sqlserver) + acesso webservices + js do lado do servidor (um dia destes fasso um tuto disto, mas digo-vos é estúpido fazer isso ^^) + identação de código html + "condicoes de template" ({IF {item id} > {vinte}}<br>Olá mundo{/if}) ou ciclos do tipo {loop a}{item B}{loop a} 5ms de segundo depois de estar em cache, é bom mau +/-? queria que alguém me desse uma noção, pessoalmente orgulho-me desse tempo ;)

Que grande lol...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

WTF? Mas eu perguntei alguma coisa?

Eu só acho que vocês perdem demasiado tempo com estas pequenas mariquices quando o mais provável é nunca terão oportunidade de se quer se preocuparem em qual o melhor método a usar para um projecto a sério.

E para já, eu não mandei bitaites nenhuns, e se tivesse mandado? Ficaste ofendido? Azar o teu... Muito menos tirei a razão alguém.

A ordem dos 100ms para mim, não é nada. Nunca me preocupei com isso, nem vou preocupar. Já disse noutros tópicos e volto a repetir, nós caminhamos para melhores tecnologias, não para piores. Não vai ser uns milissegundos que me vão chatear.

E mais, não sei porquê, mas não imagino se quer um projecto que precise de estar sempre a abrir ficheiros e assim onde exista assim tantos pedidos como falas. Como disse no inicio, preocupam-se de mais com coisas que se calhar nunca vão por em prática de forma que tirem partido delas.

Entre as alternativas, eu usava o file_put_contents, não por ser mais rápido, porque a diferença, para mim, é insignificante, mas por ser mais simples de se usar/programar.

Yep, continua minima... Como disse, quando tiveres um projecto a sério em que estes dados que das aqui se tornem reais, avisa-me...

Que grande lol...

Respondido por PM... depois diz qualquer coisa ;)

Quando me mostrares que tens algo mais sério, ai poderás dizer "ah e tal é pequeno" ;) basta uma shot do analytics (com pouca info) mas tb to a pedir o que n posso dar... n tenho analytics (multi site, "1 core")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora