NuSphere Forums Forum Index
NuSphere Forums
Reply to topic
Freezing 30-60 secs on accidental variable mouseover


Joined: 30 May 2006
Posts: 92
Reply with quote
Hi,

this happens quite often - while inside debug session accidentally mouseover-ing on a variable which has large data structure - PHPEd freezes for 30-60 seconds.
It's quite annoying and one cannot actually prevent from mouseovering some variable with large structure.
Would there be any way to limit e.g. structure recursion / somehow prevent it .. ?
It makes no sense to dump into limited screen space large data structure anyway.

Thank you.

View user's profileFind all posts by lubosdzSend private message
Site Admin

Joined: 13 Jul 2003
Posts: 8334
Reply with quote
You didn't post any info about the version of the IDE you're running.
Hints have been greatly improved in recent versions.

_________________
The PHP IDE team
View user's profileFind all posts by dmitriSend private messageVisit poster's website


Joined: 30 May 2006
Posts: 92
Reply with quote
Hi Dmitri,

I am using PhpEd 19, build 19025 (Win10).
I see the newest build 19116, which is about 1 year difference between the two versions.

OK, I may try again after I renew my licence ..
Though honestly, I am hesitating between another IDE due to very low progress pace on reported issues / new features ..

I will update info here then, thank you.
Lubos
View user's profileFind all posts by lubosdzSend private message
Site Admin

Joined: 13 Jul 2003
Posts: 8334
Reply with quote
My understanding is that the reported issues are fixed. We don't have any ongoing high level or critical issues.
As of the new features - it depends. Indeed, v19.1 didn't offer much, but we were able to focus on _new_features planned for v20.

Regarding your case with hints, I can think of 2 possible root causes -- 1) you work with remote server and your network has poor throughput 2) debugger spends significant time serializing your data.
You can check it by calling dbg_serialize($this) on the line just above the one shown on your screenshot and check how fast debugger converts your object before sending it back to the IDE. In my experience IDE unpacks even very large objects in fraction of a second. The rest is spent in the network.

_________________
The PHP IDE team
View user's profileFind all posts by dmitriSend private messageVisit poster's website


Joined: 30 May 2006
Posts: 92
Reply with quote
Thank you for your fast response & hints.

I am developing on local network (not even local virtual machine - vagrant/docker, just direct WAMP apache on windows), so there should be no internet usage / remote at all.

I guess it could be somehow related to Win10 memory occupation, because after I restart fully IDE it seems that for a while the issue disappears, and after a while comes back again.

I also tried dbg_serialize($this), but I am receiving "[error] [php] dbg_serialize() expects parameter 1 to be unknown, object given (D:\_projects\app\modules\cms\components\CmsProcessor.php:1394)".

OK, I will upgrade to newest version, thank you.

Lubos

PS: Would you mind sharing a little what's coming in PhpEd 20 and when it could be released .. ? Some developers may have happier day Smile
View user's profileFind all posts by lubosdzSend private message
Site Admin

Joined: 13 Jul 2003
Posts: 8334
Reply with quote
Seems you didn't get it right. It's certainly remote even though everything is very local and there could be no real network involved at all. After all, drive C:\ from Wine perspectives is not the same as root directory hosting linux persepectives. This fact alone can not allow us to treat php as a locally running service.
From the IDE perspectives, there are just 2 cases - 1) php is running on the physically the same file system space -- it's a local case 2) all other cases are considered remote.

_________________
The PHP IDE team
View user's profileFind all posts by dmitriSend private messageVisit poster's website


Joined: 30 May 2006
Posts: 92
Reply with quote
It's not Wine, it's Windows 10, physically the same file system space.
Please dont worry, I will update PhpEd in near future so the issue might be resolved.
Thank you.
View user's profileFind all posts by lubosdzSend private message


Joined: 30 May 2006
Posts: 92
Reply with quote
Is there any way to disable these hints in Settings?

Issue still persists (using 19333, Windows 10 and 7).
When I mouseover large objects, it starts rendering hints (object dump) and freezes for some time.
The freeze time depends probably on object depth & complexity and also available memory - in average for 2 - 40 secs, or even minutes (rarely).
Most of time it works well, e.g. for primitive vars or simple objects - renders in a moments - which is 95% of cases.
Problem occurs only with dumping large objects/classes.
Many times I just accidentally hover with mouse over some class name - and bum! - IDE freezes if the object is large, I must wait and it's annoying.

I would like to try turning this feature off.
Alternatively - would it be possible by pressing ESC instantly cancel hints rendering ? That would be sufficient fix.

Thanx.
View user's profileFind all posts by lubosdzSend private message
Site Admin

Joined: 13 Jul 2003
Posts: 8334
Reply with quote
Can you post a code example reproducing the problem?
If the object is really large, you can serialize it into a file so the sample would just read and unserialize then I'd hover mouse over to reproduce the problem?
Second question - can you reproduce the problem with real server instead of Wine?
As of your questions - if I reproduce the problem, I'll find or implement workaround. Meanwhile, I'm sorry, there is no checkbox to turn that feature off. I'd better try to find a way to limit depth and width of the objects when requested to show them in tooltips because it does not make sense to render for instance 1M lines on a tooltip window that does not support scrolling.

_________________
The PHP IDE team
View user's profileFind all posts by dmitriSend private messageVisit poster's website


Joined: 30 May 2006
Posts: 92
Reply with quote
It is very hard to post anything to emulate error I guess.
What freezes on my PC might not freeze on somebody else's PC.
It's not just one file or a few big files.
It's the whole environment setup which would need to be simulated - including how much memory is available, how big is loaded project, background parsing etc ..

Generally to emulate error I would suggest:
- using PC with smaller memory (I have 6 GB on Windows 7 laptop, and 8 GB RAM on Windows 10)
- loading 3-4 large projects into workspace (e.g. wordpress) - simply to exhaust RAM
- start debug process and stop at some breakpoint
- now try to hover over some object/class name which has few thousands lines of code - this is when it may sometime happen at my side.

I understand that it's impossible to fix anything as long as you cannot emulate error.
I would send you such a file, if I found guaranteed it will show the error - but it's not the case, but a set of environmental conditions.

As to second question - I dont use Wine neither linux/unix, but normal native windows:
https://en.wikipedia.org/wiki/Windows_7
https://en.wikipedia.org/wiki/Windows_10

Limiting depth of parsing would be very possibly helpful.
So would hiding hint by pressing ESC key.

Quote:
it does not make sense to render for instance 1M lines on a tooltip window that does not support scrolling

I believe this might be the root of the problem - when frozen, hint always covers and exceeds whole screen and I see dots ... at bottom - possibly PhpEd parses internally structures outside of visible area.
View user's profileFind all posts by lubosdzSend private message
Site Admin

Joined: 13 Jul 2003
Posts: 8334
Reply with quote
Ok, no wine. It's strictly about two windows hosts.

I previously checked large objects (long and of significantly deep depth and with many inter-links / references between properties). The longest delay I saw was around 1-3 seconds. Corresponding serialized string was around for 20MB. Looks like it's 10-40 times better than in your case.
- Can your serialize your object that took 40sec and test whether a simple script of 3 lines would reproduce the problem? -- the lines like read file containing serialized data, unserialize() function call, and some statement with the result where you'd hover mouse over. It's clear that potentially it won't be reproduced because heap memory pressure is very different. But if the problem is in debugger or in client-server communication you'll see no significant difference in time. This way we can eliminate heap pressure and related environment related variables from the equation.
- Can you eliminate two host setup and run on single one? This way we'd eliminate inter-host communication issues.

_________________
The PHP IDE team
View user's profileFind all posts by dmitriSend private messageVisit poster's website
Freezing 30-60 secs on accidental variable mouseover
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT - 5 Hours  
Page 1 of 1  

  
  
 Reply to topic