Welcome, Guest. Please login or register.

Author Topic: NetSurf 3.6 web browser released!  (Read 4773 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline chrisTopic starter

NetSurf 3.6 web browser released!
« on: November 20, 2016, 02:47:08 PM »
NetSurf is a small fast web browser for AmigaOS and other platforms.

NetSurf 3.6 is primarily a bugfix release. It contains several fixes and clean-ups to front end code, as well as supercookie blocking, and certificate chain handling improvements. We recommend all users upgrade to NetSurf 3.6.

Download AmigaOS 4 version

There is also a preview/beta of NetSurf 3.6 for AmigaOS 3.5/9.  Assistance is requested to bring this up to the standard of the OS4 build.
Download AmigaOS 3.5/9 version (pending upload approval)
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #1 on: November 20, 2016, 06:55:43 PM »
Quote from: utri007;816634
Congratulations for solving "slow down effect" of OS3.5/9 version :)


Olaf Barthel's work, not mine :)
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #2 on: November 20, 2016, 08:21:45 PM »
Quote from: utri007;816637
Any change for optimisations to get lost speed back?


It's the price of eliminating memory fragmentation, I guess.

I believe that's as fast as it can be, any optimisations will be ones in the browser.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #3 on: November 21, 2016, 10:08:14 AM »
Quote from: olsen;816646
I do not know what causes this slowdown, and I did not expect it either. Allocating and releasing memory should require (roughly) the same amount of time, regardless of the size of the allocation (as long as it can be covered by the allocator's page size). There must be more to that.

@utri007 How much slower is it?

Quote
There is plenty of room for "tuning" the new memory management. Tuning requires that data is collected on how the memory management is used, for later analysis. To this end there is an interface in the clib2 runtime library which NetSurf uses. It would be nice to allow for memory usage information to be collected through that interface, to be stored in log files.

You can send SLABSTATS to NetSurf's ARexx port to get it to dump them to the log.
Code: [Select]
NetSurf -V ram:ns.log
rx "address netsurf 'slabstats'"

I did find with the log enabled NetSurf was crashing, but I don't think that's related to the stats collection.  I might see about modifying this so the stats are stored in an ARexx stem variable.

This isn't in the 3.6 build as I added it later, I'll need to upload a new test version but I can't do that today.

I did notice that we get thousands of allocations of 32 bytes, and not much above 2K.  I reduced the slab size to 2K (again, after this 3.6 build) and the timings don't look much different.  v3.6 has the slab set at 8K.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #4 on: November 21, 2016, 12:42:55 PM »
Quote from: olsen;816648
Great! I'd like to see samples of these log files, if possible.


I'll copy the file I have somewhere useful this evening.

Quote

Thousands of 32 byte allocations translates into hundreds of slabs. Worst case, allocation requires the traversal of the entire slab list to find that a new slab needs to be added. Deallocation likewise would (worst case) require a traversal of the entire list.


I was getting something like 800 slabs of 8K in total after visiting amiga.org.

Quote
I think I ought to beef up the (not terribly sophisticated) slab statistics some more, so that the number of slab list items checked before an allocation/deallocation is performed is counted.


Some sort of breakdown of size of allocations above the slab size might be useful too.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #5 on: November 24, 2016, 11:15:50 PM »
Post-3.6 version with newly updated clib2: http://cy2.uk/netsurfos3
Let me know if it is faster or not!
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #6 on: November 25, 2016, 01:15:55 PM »
Quote from: cha05e90;816862
Chris, is there any *known* issue with CyberGrafX based OS 3.9 systems?

After a quick test yesterday I found that on my Picasso96/Picasso II equipped Amiga Netsurf worked as expected (Picasso screen with 16 Bit/800x600 px) while my CyberGrafX/CV64-3D Amiga always rendered images with 8 Bit - even if the screen hat 16 or 24 Bit depth.

None that I know of.  I'd be surprised if guigfx didn't recognise CGX and work correctly, I have *no* special handling of RTG screens on OS3 - as far as NetSurf is concerned it's just a normal palette-mapped screen.

edit I do get guigfx to stick images in an 8-bit bitmap though, no matter the screen depth, so maybe that's the problem?  It should be 8-bits per image though so shouldn't be too noticeable, and this applies to P96 too, so I'd expect to see the same effect on both.
« Last Edit: November 25, 2016, 01:23:06 PM by chris »
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #7 on: November 25, 2016, 01:26:39 PM »
Quote from: olsen;816863
Does the page load time improve if you immediately reload the page (assuming that it is not simply reloaded from the disk cache, but re-fetched from the web site)?


To help with this, holding Shift whilst clicking Reload ought to re-fetch it from the network.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #8 on: November 27, 2016, 05:04:43 PM »
@olsen

Added, but I don't think it is working properly: http://www.cy2.uk/tmp/ns-stats.json.gz

@utri007

I can fix it by removing it.  I didn't think there was an Iconify button anyway!
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #9 on: November 27, 2016, 07:18:05 PM »
Quote from: Oldsmobile_Mike;816947
Aah! Don't do that! ;)

There definitely is a button (you can see it in all my screenshots) and it definitely doesn't work. Having a program open in full screen, on the Workbench screen, covering everything else, with no easy way to make it smaller... Sure would be nice if Iconify worked. ;)


Resize and Zoom will work. Iconify uses a new feature of OS4, and it's a PITA to change.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #10 on: November 27, 2016, 08:12:14 PM »
Quote from: olsen;816953
Something isn't right. The strftime() appears to produce no output whatsoever in the archive, and the vsnprintf() function doesn't even convert %zu output correctly.

The code which prepares the JSON data for output, one line at a time, uses the clib2 vsnprintf() function. There are two tests for it in both the library and the "slab-test.c" program, and they both worked.

Does NetSurf replace vsnprintf() or strftime()? That's my only guess. The output in the archive went completely off the rails...

Ah, looks like strftime gets replaced. Before I change this, do you know if this comment is valid?

Code: [Select]
/* Although these platforms might have strftime or strptime they
 *  appear not to support the time_t seconds format specifier.
 */

(edit although there's a define to tell NetSurf not to use strftime, it doesn't seem to define strftime anywhere, so I'm not sure this will make a difference anyway)
« Last Edit: November 27, 2016, 08:24:40 PM by chris »
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #11 on: November 27, 2016, 11:53:25 PM »
Quote from: apsturk;816957
@chris

I have a problem and no idea what is wrong. I downloaded NetSurf and I get the the this (pic attached) every time I launch it. Any ideas what is wrong??
Thanks


Firstly, you are running the OS4 version on OS4, yes?
Secondly, I'll need the crashlog. Just the "stack trace" section, it's short so post it here.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #12 on: November 28, 2016, 08:35:52 AM »
Quote from: apsturk;816963
I reread your question. Here is the stack trace


OK, that's a new one. What I think has happened is the splash window has failed to open, and then crashed because I've not checked that it is open.

There's very little reason for that to fail. Lack of memory? (unlikely). Even if it can't open the image (Resources/splash.png - check it in Multiview), the window should still appear.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #13 on: November 28, 2016, 07:55:28 PM »
@olsen
I'm afraid the map file means nothing to me, but it's here if you want to decode it: http://www.cy2.uk/tmp/map.txt.gz

@apsturk
Please try build 3788 or newer from http://ci.netsurf-browser.org/builds/amiga/
It'll probably just crash later on (I have fixed the crash you're seeing), but I'd like you to run it with:
netsurf -v *>ram:ns.log

Then email me the log file.
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz
 

Offline chrisTopic starter

Re: NetSurf 3.6 web browser released!
« Reply #14 on: November 28, 2016, 11:42:12 PM »
Quote from: olsen;816994
How does the code look like which fails to produce the correct JSON data? Have you already checked it in?


It's checked in, here it is:

Code: [Select]

static int ami_memory_slab_stats_cb(void *user_data, const char *line, size_t line_length)
{
BPTR fh = (BPTR)user_data;
long err = FPuts(fh, line);

if(err != 0) {
return -1;
} else {
return 0;
}
}

fh = Open(fname, MODE_NEWFILE);
__get_slab_stats(fh, ami_memory_slab_stats_cb);
Close(fh);
"Miracles we do at once, the impossible takes a little longer" - AJS on Hyperion
Avatar picture is Tabitha by Eric W Schwartz