On Tue, May 13, 2014 at 9:55 AM, Tom Schuster <t...@schuster.me> wrote:

> I recently saw this bug about implementing navigator.getFeature, wouldn't
> it make sense for this to be like hardware.memory, but hardware.cores?
>

Is this a feature that is adopted across browsers?

Interesting that Firefox exposes this. Was there a discussion thread? It
seems that property would face the same (or even stronger) objections than
navigator.hardwareConcurrency


> On Tue, May 13, 2014 at 6:25 PM, Rik Cabanier <caban...@gmail.com> wrote:
>
>> On Tue, May 13, 2014 at 8:20 AM, Ehsan Akhgari <ehsan.akhg...@gmail.com
>> >wrote:
>>
>> > On Tue, May 13, 2014 at 2:37 AM, Rik Cabanier <caban...@gmail.com>
>> wrote:
>> >
>> >> On Mon, May 12, 2014 at 10:15 PM, Joshua Cranmer 🐧 <
>> pidgeo...@gmail.com
>> >> >wrote:
>> >>
>> >> > On 5/12/2014 7:03 PM, Rik Cabanier wrote:
>> >> >
>> >> >> *Concerns*
>> >> >>
>> >> >> The original proposal required that a platform must return the exact
>> >> >> number
>> >> >> of logical CPU cores. To mitigate the fingerprinting concern, the
>> >> proposal
>> >> >> was updated so a user agent can "lie" about this.
>> >> >> In the case of WebKit, it will return a maximum of 8 logical cores
>> so
>> >> high
>> >> >> value machines can't be discovered. (Note that it's already possible
>> >> to do
>> >> >> a rough estimate of the number of cores)
>> >> >>
>> >> >
>> >> > The discussion on the WHATWG mailing list covered a lot more than the
>> >> > fingerprinting concern. Namely:
>> >> > 1. The user may not want to let web applications hog all of the cores
>> >> on a
>> >> > machine, and exposing this kind of metric makes it easier for
>> >> (good-faith)
>> >> > applications to inadvertently do this.
>> >> >
>> >>
>> >> Web applications can already do this today. There's nothing stopping
>> them
>> >> from figuring out the CPU's and trying to use them all.
>> >> Worse, I think they will likely optimize for popular platforms which
>> >> either
>> >> overtax or underutilize non-popular ones.
>> >>
>> >
>> > Can you please provide some examples of actual web applications that do
>> > this, and what they're exactly trying to do with the number once they
>> > estimate one?  (Eli's timing attack demos don't count. ;-)
>> >
>>
>> Eli's listed some examples:
>> http://wiki.whatwg.org/wiki/NavigatorCores#Example_use_cases
>> I don't have any other cases where this is done. Maybe PDF.js would be
>> interested. They use workers to render pages and decompress images so I
>> could see how this is useful to them.
>>
>>
>> > > 2. It's not clear that this feature is necessary to build high-quality
>> >> > threading workload applications. In fact, it's possible that this
>> >> technique
>> >> > makes it easier to build inferior applications, relying on a
>> potentially
>> >> > inferior metric. (Note, for example, the disagreement on figuring out
>> >> what
>> >> > you should use for make -j if you have N cores).
>> >>
>> >>
>> >> Everyone is in agreement that that is a hard problem to fix and that
>> there
>> >> is no clear answer.
>> >> Whatever solution is picked (maybe like Grand Central or Intel TBB),
>> most
>> >> solutions will still want to know how many cores are available.
>> >> Looking at the native platform (and Adobe's applications), many query
>> the
>> >> operating system for this information to balance the workload. I don't
>> see
>> >> why this would be different for the web platform.
>> >>
>> >
>> > I don't think that the value exposed by the native platforms is
>> > particularly useful.  Really if the use case is to try to adapt the
>> number
>> > of workers to a number that will allow you to run them all concurrently,
>> > that is not the same number as reported traditionally by the native
>> > platforms.
>> >
>>
>> Why not? How is the web platform different?
>>
>>
>> > If you try Eli's test case in Firefox under different workloads (for
>> > example, while building Firefox, doing a disk intensive operation,
>> etc.),
>> > the utter inaccuracy of the results is proof in the ineffectiveness of
>> this
>> > number in my opinion.
>> >
>>
>> As Eli mentioned, you can run the algorithm for longer and get a more
>> accurate result. Again, if the native platform didn't support this, doing
>> this in C++ would result in the same.
>>
>>
>> > Also, I worry that this API is too focused on the past/present.  For
>> > example, I don't think anyone sufficiently addressed Boris' concern on
>> the
>> > whatwg thread about AMP vs SMP systems.
>> >
>>
>> Can you provide a link to that? Are there systems that expose this to the
>> user? (AFAIK slow cores are substituted with fast ones on the fly.)
>>
>>
>> > This proposal also assumes that the UA itself is mostly contempt with
>> > using a single core, which is true for the current browser engines, but
>> > we're working on changing that assumption in Servo.  It also doesn't
>> take
>> > the possibility of several ones of these web application running at the
>> > same time.
>> >
>>
>> How is this different from the native platform?
>>
>>
>> > Until these issues are addressed, I do not think we should implement or
>> > ship this feature.
>> >
>>
>> FWIW these issues were already discussed in the WebKit bug.
>> I find it odd that we don't want to give authors access to such a basic
>> feature. Not everything needs to be solved by a complex framework.
>> _______________________________________________
>> dev-platform mailing list
>> dev-platform@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-platform
>>
>
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to