My Lenovo z50 should have 4 GB nVidia GTX 840M graphic card but shows 3.1 GB?

My Lenovo z50 should have 4 GB nVidia GTX 840M graphic card but shows only 3.1 GB when I check compatibility of a game at http://www.systemrequirementslab.com/cyri.

Do I really have less memory and the company has tricked me off or is the site at fault?

Site doesn't work for me. In my opinion I really don't think it would matter because I have 2GB VRAM and that's pretty much all you need unless you are playing something really graphic demanding. So if you have 3.1 then you don't really need more but if you Really want to know I'd get a professional/check it at Lenovo and send it to them. It could also be that the VRAM also is using some of the graphics card to run the OS.

Can you run it isn't a very accurate site. Its more for people who literally have no clue about anything to use to see if they could maybe play a game.

https://www.piriform.com/...ccy/builds is good and very easy to use software which can tell you everything about your hardware.

You can user GPU-Z for more indepth information about your gpu. http://www.techpowerup.com/gpuz/

a GT840M is a lower end laptop gpu. There's no way it could even make use of 1GB of Vram let alone 4. The only reason they make 4GB models is basically to take advantage people who don't know anything. (there are a few legit uses for higher video memory, but gaming is not one of them).

Vram works just like your normal system ram. In the sense that you only need as much ram as your applications need to use.

most laptops have a 1366x768 resolution screen. At that resolution, even on max settings on the most demanding games, it would be like ~1.5GB of memory used. Having more then you are using doesn't help at all in performance.

And just because you have the Vram to support playing on max settings does NOT mean your gpu has the power to actually drive max settings.
a GT840M definitely isn't going to be able to drive max settings on newer or more demanding games very well.

Probably the site is messed up