Tumgik
#they tend to skip a lot of important panels in their ‘analyses’
jasontoddenthusiastt · 8 months
Text
‘The point is not “is bftc good Jason characterization”’
Actually the point can be anything that the op of the post wants it to be. Oh you mean that is not your point. Um …. Cool. Nobody asked.
#*​provides canon proof of Jason absolutely traumatizing teens in canon*#/s#*the whopping two instances are titans tower and the Mia Dearden incident*#both of which happened around the same time as uth. effectively making Jason approximately … eighteen or nineteen.#while Mia was 17 and Tim was like 16. wow how could this seasoned old man be so cruel to these literal babies#this is coming from someone who cares deeply about how different authors’ visions for bruce can turn him into a male power fantasy#but according to this person that's technically all fanon because the authors are fans of Batman who write him how they want#<- a needlessly complicated way of saying it doesn’t matter that almost every writer has written Batman as a cop symbol#because they don’t agree with those authors’ visions it’s just bad characterization#not consistency#anyway back to how any Jason fan who doesn't ascribe to your flawless interpretation of these iffy events is actually missing the point#mhm okay ignored winick showing Jason desperately saving children like three times in lost days#and other authors later wrote him being good with kids too#oh but even if he had the same trait in post crisis and n52 these characterizations are actually irreconcilable because they said so#kelseethe#for someone who seemingly cares so much about numbers and patterns#they tend to skip a lot of important panels in their ‘analyses’#like the panels in batman 650 where Jason mentioned the thousands joker killed and the friends he's crippled#and the lost days panels of him being upset about joker going on to hurt more families and fathers and sons#all this to claim Jason’s ultimatum in utrh was entirely self-centered#I guess it just goes to show how much evidence you have to ignore/disregard to come to the conclusion that Jason is a bad person#but yeah your vision is the be all & end all and anyone who thinks otherwise isn’t ~normal~
19 notes · View notes
playernumberv · 3 years
Text
MSI GS66 Stealth 11-UG (I7-11800H, RTX 3070 95W TGP) Consumer’s Review: Burning with power and portability
Tech Specs: Intel 11th gen I7-11800H, RTX 3070 (95W TGP), 32GB 3200MHz DDR4 RAM, 1 TB Gen 4 PCle SSD, 15.6” QHD 165Hz
Usage Period: Heavy usage (12~14 hours a day, daily) for 1 week at the time of review; used for both gaming and work
Reviewer’s Note: This is an average consumer’s review, not a hardcore tech enthusiast’s review, so if you’re looking for nitty-gritty details on hardware, benchmark scores, or FPSes in a huge variety of games, this is not the review you’re looking for. I will not be providing any benchmark scores in this review, in part because I can’t be bothered, and in part because I can’t get Cinebench R23 to work properly on this laptop for reasons unknown. I will however be talking about temperatures—using degrees Celsius as the unit of measurement as I’m not American—and optimization of temperatures using Throttlestop. I will be talking a little about FPS, but only for a very limited selection of games that I have personally tried over the past week (specifically Forza Horizon 4, Gears 5, Total War: Warhammer, Planet Coaster, and Shadow Tactics: Blades of the Shogun). Again, just to set expectations, if you’re looking for hardcore tech details, this review probably won’t satisfy your needs.
Tumblr media
I don’t usually do hardware reviews, but I think I’m in a good position to at least do a consumer’s review for the MSI GS66 11-UG, especially since no major media outlet has covered this specific model (most reviews are for the Intel 10th gen model as far as I can tell). I’ll be splitting this review into three main sections. In the first section, I’ll give my general comments about the laptop from the perspective of an average consumer who has used the laptop for a week. In the second section, I’ll talk a bit about my gaming experience on the laptop—but again, expect fairly limited coverage as I’m only going to talk about the few games I’ve personally been interested in trying and have tried on this laptop over the past week. In the third section, I’ll be talking about temperatures and temperature optimization using Throttlestop.
Before we get into the details, some background: this laptop is my first ever gaming laptop—this is an important point because it means I have no reference point with which to draw comparisons, so take my opinions with a pinch of salt (skip ahead for the actual review). I previously used a low/mid-tier ASUS laptop (with a mid-tier 8th gen Intel processor, no dGPU, and only 8GB RAM) solely for work, so you can imagine that this is quite a massive upgrade for me. I wanted a device that I could use for both work as well as gaming—for this purpose, the laptop had to be maximally portable, and so ‘fat’ gaming laptops such as the Lenovo Legions were out of the race despite the much more efficient cooling and higher power associated with these laptops. My first choice was actually the ASUS ROG Zephyrus M16, but I was informed by my regional ASUS that they weren’t going to sell the laptop locally and I wasn’t keen on parallel importing, so that choice was out. I had two other choices: the Razer Blade 15 Advanced with 11th gen Intel processors or the MSI GS66 11-UG. A quick glance at the Razer subreddit suggests widespread issues with battery bloat which I can’t be bothered to deal with, and so the MSI GS66 11-UG became the only laptop that met all my requirements and was immediately available for purchase. After an online order and a day of waiting for express delivery, the laptop was in my hands.
 General Comments
Right out of the box, the first thing I immediately noticed was that the laptop’s chassis is a ridiculous fingerprint magnet that almost instantly looks like a mess once you touch it. I’ve seen this brought up in reviews of the previous model of the GS66 as well, and was hoping that MSI might have quietly addressed it in the 11th gen revisions, but unfortunately, that wasn’t the case. Otherwise, I quite like the all-black stealthy design of the laptop, and build quality feels decent to me—the laptop feels sturdy and I have found no problems with the chassis thus far. Weighing 2.1kg, the laptop just barely qualifies as a thin and light gaming laptop, and competitors such as the ASUS ROG M16 (1.9kg) and the Razer Blade 15 Advanced (2.01kg) have done better in this regard. The difference isn’t big, but it definitely adds up, so I would have preferred if the MSI GS66 11-UG was even lighter to enhance portability even more, especially since I need to travel a fair bit of distance on public transport for work (I have not done so at the time of review, however, due to ongoing pandemic restrictions). Concerning portability and weight, do also be aware that the bundled power brick is incredibly heavy and would likely be unpleasant to lug around in your bag alongside the laptop. If you’re bringing the laptop out for work, do invest in a 65W USB-C charger—I’ve only tested this very briefly with the laptop’s Thunderbolt 4 USB-C port, but from my limited test, USB-C charging feels competent enough at sustaining the battery as long as you’re not doing anything too intensive.
Just to get this out of the way—I have no comments on the trackpad, simply because I rarely use laptop trackpads (I use a wireless Logitech mouse most of the time). All I can say is that it works. I’ve recently also shifted to using an external wireless mechanical keyboard from Keychron, so I have not used the laptop’s keyboard extensively. I do like the laptop’s TKL keyboard layout as it feels less cramped, and typing generally feels fine. It’s a functional laptop keyboard—I neither think it’s spectacular, nor do I think it’s terrible. It’s just what I’d expect of a laptop keyboard. I never used to be a fan of RGB lights, but the per-key RGB lights on the MSI GS66 are pretty sweet, and I’m starting to become an RGB convert. Many reviews of the previous-gen GS66 also lambasted the speakers for being horrible, but personally, I’m pretty neutral about the speakers. They’re about what I’d expect of laptop speakers—they aren’t spectacular, but I don’t personally find them to be horrible either.
Moving on to the screen—my first impression is that the 15.6” QHD screen is definitely neat and offers a visible resolution bump from my previous FHD laptop. My immediate impression was also that brightness feels adequate (I have not tested watching movies on this, however) in general usage and gaming. However, there are a few caveats. The version I got has a 165Hz screen—unfortunately, this was the only one available in my region, but a 240Hz version is supposed to be available as well in other regions. The 165Hz version does not support NVIDIA G-Sync, and I am unsure if this is also the case for the 240Hz version. Additionally, although I was impressed by the screen at first, I connected the laptop to my TV (a mid-tier 43 inch 4K HDR TV, non-OLED) and all of a sudden the laptop screen felt unimpressive. This is of course an extremely unfair comparison, since TV panels are undoubtedly of better quality, not to mention the much higher resolution and larger-sized panel. Still, I strongly recommend an external monitor or TV wherever possible if you want the best possible viewing experience for games and movies. If that isn’t possible, the laptop screen is still decent, unless you’re expecting eye-melting visuals. An additional oddity is that on MSI True Color, all profiles except ‘Office’ caused white colors (e.g., on Microsoft Word) to look yellowish—I do not understand this well, but I’ve simply kept the color profile to ‘Office’ since this looks best to my eyes.
In terms of general usage, my experience has been very smooth and satisfying, and this laptop is functioning as an excellent work laptop for me. The fans are basically completely silent under normal usage (my environment does have substantial ambient noise). Of course, basic things like using Microsoft Office and web-browsing are things you can do smoothly even on budget laptops, so these probably aren’t worth mentioning (though I should mention that on my old laptop, I was getting frequent crashes and slowdowns, so the smoothness of it still feels incredible on this laptop). Probably the most significant upgrade for me in terms of work comes when using R Studios, which is a data-analysis program I use for my work. On my previous laptop, more intensive analyses tended to be rather slow, bounded by a weak CPU and limited RAM. I haven’t used a lot of R over the past week, but I tested a few intensive analyses and generally felt—subjectively, without measurements—that everything ran far more smoothly and quickly. I have no comments on battery life since I use my laptop plugged in 99.9% of the time, but the 99.9WHr battery should in theory give this laptop decent battery life—on this note, I should mention that I set the battery to charge only to a maximum of 60% in MSI Dragon Center, for longevity purposes. Installing programs was a breeze given the really fast Gen 4 SSD that comes included with this laptop—1 TB feels a little insufficient though, so I’ll definitely look into an upgrade in future.
Overall, I’ve had a very good experience in my one week’s usage, barring a few small gripes.
 Gaming
As I noted in my earlier disclaimer, I only tested a few games, and these aren’t quite as intensive as games you typically see in benchmark videos (e.g., RDR2, Cyberpunk 2077, etc., which I did not test), so take my comments with a pinch of salt. I don’t imagine performance will be much too different from other laptops using the RTX 3070 MAX-Q though, so you could probably check out reviews of such laptops (e.g., the 10th generation MSI GS66 with RTX3070) if you wish to get a sense of how this laptop will perform. I may—or may not—edit this review in future as I try out more games, but don’t count on it, I’m lazy. Another point to note is that I have so far chosen not to overclock the GPU—in MSI Dragon Center, you can overclock the GPU clock and VRAM by up to 200MHz which should theoretically translate to even better performance. I have not tested overclocking the GPU yet, so I have nothing to report on that front. I also have not tested any games that support DLSS or ray-tracing, so no results on those aspects either.
My limited gaming experience on this laptop so far has been stellar, likely helped by the discrete GPU mode/mux switch this laptop comes with. I’ve been a primarily console/handheld gamer for over a decade, however, and only just got back into PC gaming (the last PC game I remember playing is StarCraft II), so my opinions may not match more hardcore PC gamers. I’m not sure this is a fair comparison since I haven’t played the same games on a PS5 and then on this laptop, but purely out of personal preference, I still prefer playing on my PS5 but gaming on this laptop still feels competent enough to match up to current-gen gaming. At 1440p with Ultra settings, I was able to achieve over 100fps on Total War: Warhammer. Frame rates seem to be inconsistent for Shadow Tactics: Blades of the Shogun, with results ranging from 60+ to over 100 during game-play, but this isn’t a fast-paced game where frame rates particularly matter (I talk about this game more in the next section on temperatures). Planet Coaster gave me somewhat sluggish performance, however, with frame rates dipping below 30fps when the map became highly packed at 1440p with ultra settings. It’s not immediately clear to me why, since both CPU/GPU utilization weren’t particularly high, which leads me to suspect it might be something to do with the specific game itself. The above games aren’t exactly games where frame rates matter too much, but these are the ones I’ve tried so this is all I’m able to share. Forza Horizon 4 is probably more interesting since frame rates matter more for this type of game. At 1440p with the preset ultra settings, I was able to achieve an average of 135fps using the in-game benchmark mode. Further increasing custom settings to ultra/extreme on a variety of options, I still managed to get an average of 110fps on the in-game benchmark mode, which is very respectable. Finally, I have not tested actual gaming on Gears 5, but I tested its in-game benchmark mode. I set all graphical options to Ultra or higher and ran the in-game benchmark mode. This gave an average of around 66fps at 1440p.
I also tested native 4K gaming with Forza Horizon 4 by connecting my laptop’s HDMI port to my TV (this is the primary way in which I’ve played Forza Horizon 4 so far). To my best knowledge, current mobile GPUs generally aren’t optimal for native 4K gaming and do better with 1440p (a high-TGP RTX3070/3080 can likely do better), but I obtained reasonably decent results with Forza Horizon 4. At native 4K with ultra settings, the in-game benchmark mode suggests locked 60fps with only a momentary dip to 57fps—in actual game-play, dips to the 50s and infrequently even the 40s do occur, especially when on-screen action gets too heavy. Otherwise, frame rates do generally stay at 60fps or near 60fps. Personally, the visual fidelity of Forza Horizon 4 in native 4K on a TV screen is absolutely unreal and worth the slight performance loss. I also briefly tested the in-game benchmark mode of Gears 5 at native 4K on my TV, again with all settings set to Ultra or higher. I did this a few times and got average framerates in the vicinity of 60fps. So far from my limited tests, native 4K gaming seems pretty viable on this laptop with an external display. I suspect that even on future, more GPU-intensive games, this laptop should still be capable of running games at native 4K, though you may have to keep settings between medium-to-high and perhaps lock frame rates to 30fps (which is frequently what you get from console games anyway, though PC gamers might scoff at the idea). Of course, I can’t confirm this without having tested other, more GPU-intensive games.
Overall, my limited gaming experience on this laptop so far has been very pleasant and is exactly what I’ve wanted out of this machine.
 Temperature Control
Probably the biggest caveat with this laptop is that it runs hot. Like, really, really hot. So hot that the chassis can even feel scalding and very uncomfortable to the touch (an external mouse and keyboard, which I use, may contribute to why this isn’t a bigger sticking point in this review). In its default state, for example, my CPU temperatures go as high as 100C on more intensive activities like gaming and data analysis (GPU temperatures are completely healthy, however, and I have so far rarely exceeded 80C on my GPU even while running games at max settings—when referring to high temperatures, I hence specifically mean CPU temperatures). Cooler Boost—which ramps the three fans up to 6000+rpm—is very effective and at a glance seems to drop temperatures by maybe 5 or more degrees (I didn’t confirm this with proper measurement so take that figure with a pinch of salt). At this point, it’s also worth pointing out that Cooler Boost is very loud, so headphones and a private room are probably ideal if you’re going to be using that. Even with Cooler Boost, the temperatures remained too high. For example, on one particular session of playing Shadow Tactics: Blades of the Shogun, my temperatures were remaining constantly at over 90C even with Cooler Boost turned on.
I should also note that I’ve used the laptop with a cooling pad that doubles as a stand from day one—specifically, I use the Klim Cyclone and adjusted it to be slightly elevated from the surface. This cooling pad has a metal mesh-like surface that coupled with the height elevation should in theory improve airflow and conduct heat away from the chassis. I did not do any tests with and without the cooling pad, but subjectively, it didn’t seem to me that it made a whole lot of difference to my temperatures considering my temperatures were still sky-high when under stress. Now, many would argue that these processors can in fact tolerate such high temperatures. If you’re comfortable with running your laptop at max temperatures and max power, you do you, it’s your machine. Personally I’m uncomfortable with constant 90C temperatures and would rather minimize the possibility of having to deal with RMA and I’ll like my laptop to be as long-lived as possible, so I looked into temperature management. I wasn’t keen on doing a repaste, since I don’t have the know-how and I’ve also found conflicting information on whether it could void warranty.
I strongly recommend checking out the following resources, which were what I referenced when doing my research on how to optimize this laptop.
https://www.reddit.com/r/GamingLaptops/comments/gp07kv/msi_gs66_thermal_perormance_guide_as_requested_by/
https://www.reddit.com/r/MSILaptops/comments/nex34a/look_here_if_your_temps_are_too_hot_or_you_dont/
https://www.theeverydayenthusiast.com/post/optimizing-the-2020-msi-gs66
https://www.ultrabookreview.com/31385-the-throttlestop-guide/
Everything that follows from here on is done using Throttlestop—I won’t go into the details of how to do it, the guides above already do so. I first experimented with undervolting the CPU core and CPU cache. A redditor suggested -75mV for the I7-11800H, but this gave me a near-instant BSOD. Unfortunately it doesn’t seem like I lucked out on the silicon lottery. I was only able to undervolt -55mV while keeping the system stable (no BSODs) during intensive loads such as gaming or data analysis. Honestly, this made no visible difference to my temperatures under load. My above example of constant 90 degrees while playing Shadow Tactics was in fact after undervolting. I tried many other things, including dropping the graphical settings. I tried gimping my display to 60Hz instead of 165. None of these helped my CPU temperatures substantially under load, unsurprisingly perhaps since graphical settings may primarily impact the GPU.
Ultimately, it was the suggestion by the redditor who wrote the MSI GS66 Thermal Performance Guide (linked above) that most significantly helped my temperatures: turning down the Turbo Ratio Limits in Throttlestop. This will likely be controversial, and again, you do you with your machine—doing so will adversely affect CPU performance to some extent, but I personally find the drastic temperature improvements to be worth it. No one else to my knowledge has written a guide on dropping Turbo Ratio Limits on the I7-11800H, so I simply replicated the settings provided by the above redditor for his I7-10750H in the tests I report below. If you wish to min-max your temperature and performance, you can absolutely find better settings with some of your own testing and tweaking.
The results are honestly dramatic. On a two-hour session of Shadow Tactics: Blades of the Shogun which gave me my worst CPU temperatures of everything I’ve tried, my CPU temperatures now average 70C with a max of 80C (1440p 165Hz ultra settings) with Cooler Boost turned on. There was one session where I had forgotten to turn on Cooler Boost, and even then my temperatures peaked at 90C and averaged around 80+C. Gaming experience is completely unaffected on this game—FPS performance is difficult to tell since frame rates in this game seem to vary wildly. It seems as if there might be a drop in FPS when looking at the FPS monitor pre- and post- applying these settings, but I can’t confirm it without a proper benchmarking mode, and in any case, this game is a stealth-based RTS where FPS really doesn’t matter too much and my actual experience feels unaffected. Prior to these settings, Forza Horizon 4 gave me average temperatures of 70-80+C with peaks of 80-90+C (4K 60fps ultra settings). Following these settings, an hour-long session gave me temperatures averaging 66C with a peak of 77C with absolutely no impact on FPS. Finally, on Gears 5’s in-game benchmark (at 1440p ultra), my temperatures averaged 86C and peaked 92C with an average of 65.5fps prior to applying these settings, while following these settings, my temperatures averaged 77C and peaked at 79C with an average of 66.5fps. Again, drastic temperature improvements with no impact on performance. In non-CPU bound games, I believe frame rates will largely show minimal impact but temperatures will improve drastically. I’ve only tested very few games, however, so I can’t guarantee this and will have to play more games to see how they perform. I suspect CPU-bound games will suffer more negatively from these settings. Idle temps are in the low 40s with Cooler Boost turned off, and across a four-hour period of normal work and web-browsing usage, I obtained an average of 51C with a peak of 76C (prior to these settings, I got occasional spikes to the 80s or 90s even with normal use).  
A final test I ran was on R Studios, my primary data analysis application (Cinebench R23 doesn’t work on my machine, and I can’t be bothered to troubleshoot or find other benchmarking tools). I tested running a particular analysis (if it matters, it was a series of five structural equation models with full-information maximum likelihood imputations for missing data on a dataset that had a sample size of over 4000) with and without the custom settings I had applied on the CPU. I assessed the time it took for the analysis to be completed in the two settings, and I also assessed CPU temperatures with and without the settings. These are the results (Cooler Boost off since I generally don’t want the fan noise in non-gaming usage scenarios):
Default settings (no undervolt and no adjustments to Turbo Ratio Limits): 30 seconds; max temperature 94C, average 84C.
Adjusted settings (-55mv undervolt and reduced Turbo Ratio Limits): 38 seconds; max temperature 71C, average 64C.
The results speak for themselves. There’s definitely some performance reduction on CPU-bound applications like this (I can honestly live with an 8-second slowdown to my work, especially since gaming so far doesn’t seem significantly affected), but the temperature improvements are dramatic. In fact, with max temperatures of 71C, there’s a lot of thermal headroom to actually increase the Turbo Ratio Limits further to improve performance while keeping temperatures within the 80C range. I will likely tweak the settings further in the days ahead to obtain slightly better performance while keeping temperatures healthy, but for now, all you need to know is that this is a highly viable and effective method of managing high temperatures on your CPU. You can definitely do a lot of min-maxing using this method to find your own best balance between temperatures and performance on your own machine.
With that, I now have a powerful (at least in my opinion) laptop that remains reasonably cool even under load. I will say however that all this research and optimization was a hassle. I’m no tech enthusiast and I don’t consider myself especially well-versed in hardware, so this required a lot of effort. I can definitely imagine that this would be very challenging for other users that are even less well-informed than I am. It’s definitely a major point of contention for average consumers who don’t want high temperatures but are also unwilling to do all these optimizations and tweaks.
 Concluding Thoughts
Should you buy the MSI GS66 11-UG? It really depends on what you’re looking for. If weight/portability isn’t a concern and all you care about is maximizing power and performance, you’re definitely better off choosing a bulkier gaming laptop or even a desktop PC. But if, like me, you wanted a thin and light gaming laptop that offered a balance between portability and performance, I think the MSI GS66 11-UG is a very solid pick, though temperature control requires quite a lot of somewhat-advanced tweaking and optimization. I can’t speak to whether it’s better than its competitors since I’ve not had the opportunity of trying them out, but at the very least, I’ve enjoyed using the MSI GS66 11-UG and it has satisfied all that I’ve asked of it so far. It performed the brutal task of using Microsoft Office—I kid—perfectly well, and has shredded productivity apps (specifically R and SPSS Statistics) that my older laptop struggled somewhat with. It’s more than competent enough at running games decently, at least among the very few I’ve tried, as long as you aren’t expecting native 4K with ultra settings while enjoying frame rates in the hundreds. So yeah—I very much like this laptop. It may or may not fit your needs, depending on what you’re looking for, but it definitely fit mine, with some caveats as I’ve noted throughout this review. A numerical score is kinda arbitrary and pointless, especially since I haven’t tried any other gaming laptops and don’t have any comparison point, but I’d give this a solid 8.5/10 if I had to assign a score. So, there you have it. I’m sorry if this review isn’t as comprehensive as typical tech reviews and may not provide you the info you were looking for, but I’m not a hardcore tech enthusiast and I’m not getting paid to write this review. I’m just an average consumer voluntarily writing a (excessively wordy) review, so this is as much effort as I’m willing to put. Hope this helps someone out there!
 Pros:
+Decent build quality
+Good balance between portability and performance
+discrete GPU mode/mux switch
+Fairly powerful for games, should be able to run at 1440p with high/ultra settings for many games, and possibly native 4K with high/ultra settings on an external display with 30~60fps.
+Decent selection of ports, and support for USB-C charging
+Per-key RGB
+CoolerBoost is effective at lowering temperatures (but very loud)
Cons:
-Runs very hot and very loud
-Not beginner-friendly to optimize
-Chassis is a fingerprint magnet
-No G-Sync on this screen as far as I can tell, not sure if this is the case for the 240Hz version
-Really expensive (equivalent of over 3000USD in my region because prices are jacked up by local distributors
0 notes
strathoa · 7 years
Text
Demonstrating the need for speed: improving page loading and rendering in repositories
George Macgregor, Repository Coordinator, University of Strathclyde
Typical web users are growing accustomed to speed. Whenever they use any website they expect quick responses, little lag and a smooth user experience (UX). This has always been true of the web but, as time has progressed, users’ expectations have too. The importance of mobile has simply fuelled users’ impatience. Consider the following recent findings from Google:
Mobile sites lag behind desktop sites in key engagement metrics such as average time on site, pages per visit, and bounce rate. For retailers, this can be especially costly since 30% of all online shopping purchases now happen on mobile phones. The average U.S. retail mobile site loaded in 6.9 seconds in July 2016, but, according to the most recent data, 40% of consumers will leave a page that takes longer than three seconds to load. And 79% of shoppers who are dissatisfied with site performance say they're less likely to purchase from the same site again.
Other research actually found page abandonment to be far higher:
Average load time for mobile sites is 19 seconds over 3G [and] 53% of mobile users abandon sites that take longer than 3 seconds to load […] Comparing faster sites (5 seconds) to slower ones (19 seconds), the faster sites had average session lengths that were 70% longer and bounce rates that were 35% lower.
Clearly this sort of user behaviour is relevant to the work of institutional repositories, and repositories more generally. One might also argue that scholarly end users are even more likely to lack patience. Such users are often interacting with dozens, perhaps hundreds, of scholarly websites and search tools every day. They engage in horizontal information seeking strategies and simply don’t have the time or patience to wait for, say, repository pages to render. Because they are skipping across multiple, disparate sites to gather the information they need to complete their task, speed is of the essence.
On top of this consideration, it should also be noted that, by their very nature, repositories tend to experience high “bounce rates”. Avoiding unnecessary or additional “bounce” therefore has to be mitigated.
The repository speed problem
In general, repositories are slow to load pages, across both desktop and mobile. This situation is not peculiar to repositories as it afflicts many platforms, from CMS implementations to e-commerce systems. This is because it is much easier to make a standalone website speedy but much more difficult to effect speed improvements within the constraints of a larger software platform. Platforms, like repositories, simply have more stuff going on at the backend and the content being rendered on pages is often more complicated.
However, this isn’t to say that optimisations cannot be implemented because they absolutely can. And this is ultimately what this particular blog post is about: taking the page loading optimisations for our EPrints repository, Strathprints, as far as they will go.
As we shall see, it was possible to yield a 79% overall improvement in rendering for Strathprints and, with a little graft, it should be possible for other repositories, whatever flavour, to make similar adjustments to satisfy users’ need for speed. There isn’t time or space to discuss every single action in minute detail but exploring some of the principal steps below should help to give your loading times a haircut.
Observing the need for speed
As many readers may be aware, Chrome DevTools provides some excellent diagnostic tools for trouble shooting website performance issues such as HTML and CSS element problems (i.e. why is my website not rendering in the way I originally intended?); but it also provides useful tools for analysing resource loading times. Mozilla Firefox also provides similar tools. The “Network” panel in Chrome DevTools (pictured) can be used to record and analyse network activity thus allowing:
Load information in aggregate or for individual resources to be observed.
Filtering and sorting of how resources are displayed.
Visual inspection of the timeline column, which displays a visual waterfall of all network requests.
Capturing of screenshots alongside the timeline during resource loading, thereby allowing inspection of page rendering progress. (For example, not all resources may have loaded but if above-the-fold content is prioritised and visible in the screenshot capture, then the page could be said to have delivered for the user.)
Inspecting the resource loading times is really the best place to observe how repository pages are being loaded. It highlights in spectacular detail the myriad of resources (some of which being called via third-party JavaScript), their size, time spent loading, etc., as well as providing a benchmark from which subsequent page loading optimisations can be measured. The “Network” console also allows loading emulation over 3G and 4G connections within desktop and mobile displays.
Tumblr media
Minification and rationlisation
Minification refers to the process of removing superfluous or redundant data without affecting how the resource is processed by the browser - e.g. code comments, formatting, white space characters, unused code, using shorter variable names, etc. This superfluous data may aid the human readability of the code but they are not needed for the code to execute efficiently.
JavaScipt and CSS files can be rather bloated and are generally ripe for minification. Without minification slower resource loading and ergo page loading results. Indeed, if your repository is anything like Strathprints, pages will probably be loaded with numerous CSS and JavaScript that you, as a repository manager or developer, implemented yourself! It takes only a small amount of time to implement minification and free online tools are available to help, such as CSS Minifier and JS Compress. Minification is therefore a quick win and, when applied to all the CSS, JavaScript and some HTML too, yielded a 23% improvement in page loading speeds alone for Strathprints.
But before minifying it is first necessary to rationalise any CSS. In instances where there is a “main” CSS and several smaller supporting CSS files, it is worth rationalising these supporting files into just one or two CSS files. Maintaining lots of separate CSS files has always seemed sensible to people like me because it provides for clarity and ease of work. However, it also contributes to the number of resources a browser has to request and load before displaying a page on the repository to the user. So, reducing the number of those requests and loads is critical. Rationalising multiple CSS files into, say, one or two minified CSS files therefore offers the promise of 1 or 2 seconds off page loading. (Interestingly, Google actually recommends using inline CSS to obviate CSS file loading, assuming the styles aren’t too complex; but for me this breaks the separation of concerns philosophy which makes me feel a little dirty).
And before we conclude the discussion of CSS, it is also worth reviewing how stylesheets are being called within your repository. For example, calling CSS using the @import command – used by default within EPrints – has been shown to have a negative impact on page performance, so moving from @import to <link> is something to be added to any ‘to-do’ list.
Asynchronous loading of JS resources
Render-blocking JavaScript is probably one of the most irritating obstacles to overcome when you are feeding the need for speed. A repository like Strathprints, probably like most others, needs to load a lot of JS resources in order to deliver important functionality. For Strathprints this includes native JS resources, but also third-party JS such as the Google JSAPI, AltMetric API, analytics from Google Analytics and AddThis, as well as for any EPrints plugins that have been installed from the EPrints Bazaar.
Before a browser can render a page it has to build a “DOM tree” by parsing the HTML. If the parser encounters a script during this process it has to pause to execute that script before continuing its parsing. Third-party scripts are more problematic because not only is the parser required to pause to execute the script, but it also has to wait for the resource to be downloaded too, all of which incurs network roundtrips and inevitable time delays before parsing can resume. Meanwhile, of course, the page cannot be rendered to the user because the browser is either pausing to execute scripts and/or calling scripts from other services.
However, in many cases there is no need for JS to be loaded at the same time as the page itself and therefore a lot of JS can actually be deferred until after page rendering. The good news is that HTML5 introduced the async attribute to be used with <script>. This Boolean attribute indicates that the browser should, if possible, execute the script asynchronously.
<script type="text/javascript" async="async" src="https://www.google.com/jsapi"><!--padder--></script>
Full disclosure! There is always troubleshooting to be performed when using async because the consequences of loading JS asynchronously is not always known. It can break existing functionality and have knock-on consequences for certain repository features. Quite a few “creative” solutions were sought in order to implement async on Strathprints - where there is a will, there is a way! Suffice to say, all JS in Strathprints now loads asynchronously resulting in a far speedier response on both desktop and mobile. This also has the added bonus of benefiting search engine bots, many of which choose to abandon pages with render-blocking content.
Tumblr media
There are new W3C standards emerging soon to support the loading CSS files in a similar non-render-blocking manner. An onload declaration in the <head> for the CSS will defer their loading until the page has been rendered. There is no support for onload in browsers at time of writing but it should become available in subsequent browser releases.
gzip compression
gzip is a file format and a software application used for file compression and decompression.
All modern browsers support and automatically negotiate gzip compression for all HTTP requests and, where used, gzip can compress the size of the transferred response by up to 90%. This significantly reduces the amount of time needed to download resources, reduces data usage for users, and improves the first render time of your pages.
Enabling gzip is more an infrastructural task because it involves configuring the repository server so that it returned gzipped content to compliant browsers. This means tinkering with Apache. Something like the following should get added to the .htaccess file in Apache:
# compress text, html, javascript, css, xml:AddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE application/xml>AddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/x-javascript
# Or, compress certain file types by extension:<files *.html>SetOutputFilter DEFLATE</files>
Following an Apache restart, it should be possible to observe gzip being delivered in the HTTP response headers for the repository. This can be verified by opening Google DevTools (or your favourite alternative) as pictured.
Tumblr media
Compression can thereafter be tested externally using the service, Check GZIP Compression, which kind of does what it says on the tin! But by enabling gzip Strathprints enjoys a 77.2% compression boost.
Tumblr media
Before concluding on this topic it is worth giving thought to the concept of compression more generally. For example, are all images and icons on the repository compressed? Optimising images using one of many online tools allows images to strike a good balance between quality and file size.
Summary
All the optimisations discussed in this blog post are optimisations I have been intending to action for many months, perhaps even years. Whilst some of the optimisations are more problematic to implement than others, there are many which could be considered “quick wins” and which would yield significant improvements (e.g. minification).
In the case of Strathprints, it is possible to calculate - using Chrome DevTools - that there has been a 79% overall improvement in loading speed. It now takes, on average, under 1 ½ secs on desktop & LAN, less than 2 secs on a 4G connection, and between 2 and 3 secs on a 3G connection to load Strathprints. Thus, users are presented with a usable UI 79% quicker than before the enhancements. Overall page rendering has improved and the optimisations have also yielded a 94/100 on Google’s PageSpeed desktop test and 69/100 for mobile. Anything more on mobile would result in some serious hacks - and I’ve already performed a few of these already! :-)
Tumblr media
The most significant optimisations have been implemented but, as time progresses, additional albeit smaller optimisations will no doubt be identified. Work is therefore not over. Indeed, henceforth the task will be more about the accumulation of marginal gains; identifying numerous minor optimisations that can be implemented which, when taken in aggregate, effect further significant improvements – all of which feeds the users’ need for speed.
Tumblr media
2 notes · View notes