360fans_uid43274 发表于 2019-4-11 21:53

安卓手机版360极速浏览器,性能测试,没想到竟然比chrome快10%?

360极速浏览器计算圆周率3000位用时39秒,而chrome浏览器用时44秒,用的是我自己写的圆周率算法,很神奇?有人知道安卓版360极速浏览器为什么这么快吗?





360fans_uid43274 发表于 2019-4-11 21:55

跟他对比的其他浏览器是edge浏览器 qq浏览器 chrome浏览器 还有华为浏览器

360fans_uid43274 发表于 2019-4-11 21:56

<!DOCTYPE html>
<html>
        <head>
                <script src="https://cdn.staticfile.org/decimal.js/10.1.1/decimal.js" type="text/javascript" charset="utf-8"></script>
                <script src="https://cdn.staticfile.org/decimal.js/10.1.1/decimal.min.js" type="text/javascript" charset="utf-8"></script>
                <!-- <script src="https://cdn.staticfile.org/mathjs/5.7.0/math.min.js" type="text/javascript" charset="utf-8"></script> -->
                <script>
                        //Decimal(value)
                        onload = mytestpi;
                        function mytestpi() {
                                function getConstpinewhighefficiency105() {
                                        var myptext = document.getElementById("tp");
                                        myptext.innerHTML = "";
                                       

                                        //var piwei = Math.pow(10, 5);
                                        var piwei = 3000;
                                        Decimal.precision = piwei;
                                        //my=Decimal.clone;
                                        //Decimal.mul = Decimal.mul; //双参数
                                        //Decimal.div = Decimal.div; //双参数
                                //        Decimal.plus = Decimal.plus; //单参数
                                //        Decimal.minus = Decimal.minus; //单参数
                                       
                                       
                                        myptext.innerHTML += "圆周率计算" + piwei + "位";
                                        myptext.innerHTML += "<br>";
                                        myptext.innerHTML += "计算圆周率中......";
                                        myptext.innerHTML += "<br>";
                                        //console.log(2**5);
                                        var lastt = 0;
                                        //var d = new Date();
                                        var strt = new Date().getTime();
                                        //console.log("strt " + strt);
                                        //var p = 0;
                                        var p = new Decimal(0);
                                        var a = new Decimal(1);
                                        //var h = (10 ** (piwei));
                                        var h = 1;
                                        var x = new Decimal(0);
                                        var t = new Decimal(1);
                                        var fu = 1;
                                        //        console.log("t " + t);
                                        //while (!t = 0)
                                        while (Decimal.abs(t).cmp(new Decimal("1e-"+piwei))!=-1)
                                        //if this Decimal and x have the same value
                                        {
                                                //p = Decimal.add(p, t);
                                                //p + t;
                                                //if (p == NaN) break;
                                                //console.log("p " + p);
                                                //if (p == Infinity) break;
                                                //        t =h* fu * (-(2 ** 5)/ (4 * x + 1) - 1 / (4 * x + 3) + (2 ** 8)/ (10 * x + 1) - (2 ** 6)/ (10 * x +        3) - (2 ** 2)/ (10 * x + 5) - (2 ** 2)/ (10 * x + 7) + 1/ (10 * x + 9)) / (2 ** 6) / a;
                                                t = Decimal.mul(h, fu).div(Decimal.mul((2 ** 6), a)).mul(
                                                        (Decimal.div((-(2 ** 5)), (Decimal.mul(4, x).plus(1)))).plus(Decimal.div((-1), (Decimal.mul(4, x).plus(3)))).plus(Decimal.div((2 ** 8), (Decimal.mul(10, x)
                                                                .plus(1)))).plus(Decimal.div((-(2 ** 6)), (Decimal.mul(10, x).plus(3)))).plus(Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(5)))).plus(
                                                                Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(7)))).plus(Decimal.div((1), (Decimal.mul(10, x).plus(9))))
                                                );
                                                p = Decimal.add(p, t);
                                                //console.log("t " + t);
                                                //console.log("p " + p);
                                                //if (t == Infinity) break;
                                                //if (t == 0) break;
                                                //if (t.equals(0)) break;
                                                if (Decimal.abs(t).cmp(new Decimal("1e-"+piwei))==-1)break;
                                                fu = -1 * fu;
                                                //if (a * 1024 == Infinity) break;
                                                a = Decimal.mul(a, 1024);
                                                //a * 1024;

                                                //        console.log("a " + a);
                                                //if(a==Infinity)break;
                                                x = x.plus(1);
                                                // + 1;
                                                //console.log("x " + x);
                                                var calct = new Date().getTime() - strt;
                                                //console.log("calct " + calct);
                                        //        if ((calct - lastt) >= 500) {
                                        //                var durt = (calct) / 1000;
                                                        //console.log("durt " + durt);
                                                //        myptext.innerHTML += "计算用时" + durt + "秒第" + x + "次<br>";
                                                //        myptext.innerHTML += "圆周率" + piwei + "位" + "<br>" + p + "<br>";
                                                //console.log("计算用时" + durt + "秒第" + x + "次\n"+"圆周率" + piwei + "位" + "\n" + p );
                                        //                lastt = calct;
                                        //        }

                                        }
                                        var endt = new Date().getTime();
                                        //console.log("endt "+endt);
                                        var durt = (endt - strt) / 1000;
                                        //console.log("durt " + durt);
                                        //console.log("计算完成,用时" + durt + "秒第" + x + "次");
                                        myptext.innerHTML += "计算完成,用时" + durt + "秒第" + x + "次<br>";

                                        myptext.innerHTML += "圆周率" + piwei + "位" + "<br>" + p + "<br>";
                                        return String(p);
                                }

                                p=getConstpinewhighefficiency105();
                                //console.log("p " + p);
                                //                                 var mytestcishu=10000;
                                //                                 var allstrt = new Date().getTime();
                                //                                 for (myi = 0; myi <= mytestcishu; myi++) getConstpinewhighefficiency105();
                                //                                 var allendt = new Date().getTime();
                                //                                 var alldurt = (allendt - allstrt) / 1000;
                                //                                 console.log(mytestcishu+"次计算完成,用时" + alldurt + "秒");
                                //        var myptext = document.getElementById("tp");
                                //myptext.innerHTML +=mytestcishu+"次计算完成,用时" + alldurt + "秒"+Math.PI+ "<br>"+Decimal.PI
                                //myptext.innerHTML +="测试math.js<br>"+Math.PI+ "<br>"+"测试decimal.js<br>"+Decimal.acos(-1)
                        };
                </script>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

                <meta name="viewport" content="width=device-width, initial-scale=1">

                <meta charset="utf-8">
                <title>圆周率计算</title>
        </head>
        <body>
                <script type="text/javascript">
document.write("<p>UserAgent: ")
document.write(navigator.userAgent + "</p>")
</script>
                <div>
                        <p id="tp"></p>
                </div>
        </body>
</html>

360fans_uid43274 发表于 2019-4-11 21:56

我写的圆周率计算源代码等会发出来

360fans_uid43274 发表于 2019-4-11 22:05


360fans_uid43274 发表于 2019-4-11 22:09

源代码下载链接: 链接: https://pan.baidu.com/s/1yFcEsaf_2Fy4IKPTsBVHzQ 提取码: 0qrx

360fans_uid43274 发表于 2019-4-11 22:11

<!DOCTYPE html>
<html>
        <head>
                <script src="https://cdn.staticfile.org/decimal.js/10.1.1/decimal.js" type="text/javascript" charset="utf-8"></script>
                <script src="https://cdn.staticfile.org/decimal.js/10.1.1/decimal.min.js" type="text/javascript" charset="utf-8"></script>
                <!-- <script src="https://cdn.staticfile.org/mathjs/5.7.0/math.min.js" type="text/javascript" charset="utf-8"></script> -->
                <script>
                        //Decimal(value)
                        onload = mytestpi;
                        function mytestpi() {
                                function getConstpinewhighefficiency105() {
                                        var myptext = document.getElementById("tp");
                                        myptext.innerHTML = "";
                                       

                                        //var piwei = Math.pow(10, 5);
                                        var piwei = 3000;
                                        Decimal.precision = piwei;
                                        //my=Decimal.clone;
                                        //Decimal.mul = Decimal.mul; //双参数
                                        //Decimal.div = Decimal.div; //双参数
                                //        Decimal.plus = Decimal.plus; //单参数
                                //        Decimal.minus = Decimal.minus; //单参数
                                       
                                       
                                        myptext.innerHTML += "圆周率计算" + piwei + "位";
                                        myptext.innerHTML += "<br>";
                                        myptext.innerHTML += "计算圆周率中......";
                                        myptext.innerHTML += "<br>";
                                        //console.log(2**5);
                                        var lastt = 0;
                                        //var d = new Date();
                                        var strt = new Date().getTime();
                                        //console.log("strt " + strt);
                                        //var p = 0;
                                        var p = new Decimal(0);
                                        var a = new Decimal(1);
                                        //var h = (10 ** (piwei));
                                        var h = 1;
                                        var x = new Decimal(0);
                                        var t = new Decimal(1);
                                        var fu = 1;
                                        //        console.log("t " + t);
                                        //while (!t = 0)
                                        while (Decimal.abs(t).cmp(new Decimal("1e-"+piwei))!=-1)
                                        //if this Decimal and x have the same value
                                        {
                                                //p = Decimal.add(p, t);
                                                //p + t;
                                                //if (p == NaN) break;
                                                //console.log("p " + p);
                                                //if (p == Infinity) break;
                                                //        t =h* fu * (-(2 ** 5)/ (4 * x + 1) - 1 / (4 * x + 3) + (2 ** 8)/ (10 * x + 1) - (2 ** 6)/ (10 * x +        3) - (2 ** 2)/ (10 * x + 5) - (2 ** 2)/ (10 * x + 7) + 1/ (10 * x + 9)) / (2 ** 6) / a;
                                                t = Decimal.mul(h, fu).div(Decimal.mul((2 ** 6), a)).mul(
                                                        (Decimal.div((-(2 ** 5)), (Decimal.mul(4, x).plus(1)))).plus(Decimal.div((-1), (Decimal.mul(4, x).plus(3)))).plus(Decimal.div((2 ** 8), (Decimal.mul(10, x)
                                                                .plus(1)))).plus(Decimal.div((-(2 ** 6)), (Decimal.mul(10, x).plus(3)))).plus(Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(5)))).plus(
                                                                Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(7)))).plus(Decimal.div((1), (Decimal.mul(10, x).plus(9))))
                                                );
                                                p = Decimal.add(p, t);
                                                //console.log("t " + t);
                                                //console.log("p " + p);
                                                //if (t == Infinity) break;
                                                //if (t == 0) break;
                                                //if (t.equals(0)) break;
                                                if (Decimal.abs(t).cmp(new Decimal("1e-"+piwei))==-1)break;
                                                fu = -1 * fu;
                                                //if (a * 1024 == Infinity) break;
                                                a = Decimal.mul(a, 1024);
                                                //a * 1024;

                                                //        console.log("a " + a);
                                                //if(a==Infinity)break;
                                                x = x.plus(1);
                                                // + 1;
                                                //console.log("x " + x);
                                                var calct = new Date().getTime() - strt;
                                                //console.log("calct " + calct);
                                        //        if ((calct - lastt) >= 500) {
                                        //                var durt = (calct) / 1000;
                                                        //console.log("durt " + durt);
                                                //        myptext.innerHTML += "计算用时" + durt + "秒第" + x + "次<br>";
                                                //        myptext.innerHTML += "圆周率" + piwei + "位" + "<br>" + p + "<br>";
                                                //console.log("计算用时" + durt + "秒第" + x + "次\n"+"圆周率" + piwei + "位" + "\n" + p );
                                        //                lastt = calct;
                                        //        }

                                        }
                                        var endt = new Date().getTime();
                                        //console.log("endt "+endt);
                                        var durt = (endt - strt) / 1000;
                                        //console.log("durt " + durt);
                                        //console.log("计算完成,用时" + durt + "秒第" + x + "次");
                                        myptext.innerHTML += "计算完成,用时" + durt + "秒第" + x + "次<br>";

                                        myptext.innerHTML += "圆周率" + piwei + "位" + "<br>" + p + "<br>";
                                        return String(p);
                                }

                                p=getConstpinewhighefficiency105();
                                //console.log("p " + p);
                                //                                 var mytestcishu=10000;
                                //                                 var allstrt = new Date().getTime();
                                //                                 for (myi = 0; myi <= mytestcishu; myi++) getConstpinewhighefficiency105();
                                //                                 var allendt = new Date().getTime();
                                //                                 var alldurt = (allendt - allstrt) / 1000;
                                //                                 console.log(mytestcishu+"次计算完成,用时" + alldurt + "秒");
                                //        var myptext = document.getElementById("tp");
                                //myptext.innerHTML +=mytestcishu+"次计算完成,用时" + alldurt + "秒"+Math.PI+ "<br>"+Decimal.PI
                                //myptext.innerHTML +="测试math.js<br>"+Math.PI+ "<br>"+"测试decimal.js<br>"+Decimal.acos(-1)
                        };
                </script>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

                <meta name="viewport" content="width=device-width, initial-scale=1">

                <meta charset="utf-8">
                <title>圆周率计算</title>
        </head>
        <body>
                <script type="text/javascript">
document.write("<p>UserAgent: ")
document.write(navigator.userAgent + "</p>")
</script>
                <div>
                        <p id="tp"></p>
                </div>
        </body>
</html>

360fans_u38819654 发表于 2019-4-12 14:16

非常感谢您的测试和对我们的支持~~ღ( ´・ᴗ・` )。如果有什么问题和建议也灰常欢迎反馈给我们哦~

360fans_uid43274 发表于 2019-4-13 14:07

我又写了一个多线程圆周率计算程序,支持多线程啦
https://masx200.github.io/圆周率计算- ... 20190412/index.html


UserAgent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
开始圆周率多线程测试
线程数为8
圆周率计算3000位
计算圆周率中......
计算完成,用时3.557秒第1004次
圆周率3000位
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494232




mythread1.js:8 副线程1接收event.data3000,8,0mythread1.js:8 副线程2接收event.data3000,8,1mythread1.js:8 副线程7接收event.data3000,8,6mythread1.js:8 副线程8接收event.data3000,8,7mythread1.js:8 副线程4接收event.data3000,8,3mythread1.js:8 副线程5接收event.data3000,8,4mythread1.js:8 副线程3接收event.data3000,8,2mythread1.js:8 副线程6接收event.data3000,8,5mypidashujisuan.js:67 主线程从副线程2接收event.data-0.000173301147482709498963368947066436754007607962264010260124653724274656613613684467225008563360640468991993201721161125662063854665154330754525679740916120509477410384478812746997839332499760717597938277337771311258502732180377981566381584596092090697643840554185049500368934074857868755726514534268340388140153901619043705818063185795358936098547777575262778615713756808520304170393861150487106471149897223759223318510632790126467193957148420989298251300736572301312226843035809336731946357739733984013718508459623400473306096565512068310665704917529567970763256689878368032180264670062517949213495260738989656353404752600064865268896744589146984220600718104938177515481834192772327943851857662159843440667006585873110421801700883365823036479135195704540798279479435474078142266908689769340708124332533067901555744416476492466813811803071402854202945734853920755103191742530046169282286266423342254874860421250126819350483969187850847207759605682965255504479406660151296704345982032267780917531432832640917871071696922120652264775699169214016138538801751875959155132050524263799248096560101881770307270140998418831606013636156756286007363087724367479525404413006279570086336110896185754477378232941871875177226053037080350369090935729392584117509522815593186758247682290710287431228880040469263308430105470262078969695805569365109224324609467793088750024096415075851360550046923333430653710234078921607444017843548017721060648957542641101784190265771117655931267483568419563925566570835537709052951188238709382170101730212294124459061060699034926867338964288606856455448752418692994348419530766811888675266077957902371097411894491380569035424295285175260406723345617091881310950903906234726948712330302092327728031045569331106854682498241222045688970605157600117873106156307906263285117836089619559268468636302031737107253536692891952645340800438184853324762863188213814797726436945007870830882987072139777394140355704838035843775763827673959722914367426560821234216349035938946349218188383795957676057088457161642811129536591400683725046264810530344202703026773312461622749246211750116701734389485724047248046780959400484524470706898309215042157018078858928391339624794208893609029992440465992562070890522611123452880703635631681107905817912756134419823737071125144406907378841452493340836563407884538827830682151498413870256951430136370153385011981514718347486062231056155875565387096196005576910111177743140134865801455219046281723549251070509066893412792358972563841626993985779121865743847007903502086561941798889391532805215106614948847735764689482288820719970402855795426871786181878669372512091306768564249930322270713598750443790747046996920621585259249317312457519895400842126841902789507682932373971311031932052998949842350187703248345125134991044798165018625769359742243285211121074428410181726029246798344085051201697898423303309671404618107871542113429380052087845151149973440046780834979128219849184638468439526239312261033552074080401345198194957650008235150879033665381687630586222569,1002mypidashujisuan.js:67 主线程从副线程1接收event.data3.14176587301587301587301588993871153824345628577134699966736319104513581830662997901641771603605239270714719951073112471778624853980357032991559149960187504342116293729469888794037065589229829181299022128830443110138821231858054312761355575739427842577760636263056259834929725680623652904568580544305056061141461383998097581684425725959521724032077088603735856789659688456480730245626417707031451737123406947352492122139516585119571358064328312334876933607490682924288185345693005045358596385537790295968031953375938950156442255285756025191005131100445298829369505265359178529569762670634929280790851388794261435194437168289500512521347144749767445758046791291087723439418677582166465176517460284437082890280511636656484748444477994315898270672723031241471334915495637919117602131345385655538277296202345678234453901437124385318823615636411623194154441091323899083151559347201340891183593053213133738388042329180523420663023428932262197366238114535505189324521251415393943363519202295583128081259305974244637051962431081957594584855168132580826842664268773667665015563994564294987572452935213216509346352961956019300573967861488198905595653295304686058398796500534335895522234517435456271033021608234420685668250373135174218005135277775779856703409522167733350001521190842675498895944558554086509110630609738485551528844685566777919337270958596870067394665231608463727322930961765121367552380910148055082080527743636148535574835375557246252602045355561213830868674162567292815929354734184825186014104023656379492125782616357862160065416407201335731624661911480227751039960747017141801943000437039583677402365845175682596555960783191266597003011905827585223040926611082761914501004127804262982986573457884384783248322475905515467995791443352986864935147096801873970908855125252833280798705216393665799872814656741941549680298498850720810207744844576965331376721298267666582086537314350680230802366468391074307834786436664916274139437348985665263071932673795912044212909173162502908634488346642353860662298222109063831432746131183596519329729744002114000661231182082564380439995012371946981555698544530127893858468591358499739280192282152682952284615565484565837857300161484467499310926398486312549099244297607994366230291430804970139023894259313262705098930273487253637206705475768824547783761680503243937621629702548771419132889722647505859075065154738961137932262102535327157083032107554223996660991552728229814941706896242061500020001437289831600257494759520291416100566189714040728720662622527135249218129830354567335641704258122632291350726811432548108067042269920757524076468145032698672617540280317966613093254724435748753551858910955481644640972964000061713644790391138615882320258592260861962976673885608472829271392560709823632230008066623706344678710347914885328892387327197264648178010539118930955467904746851926839233632215440289394930413728528396949057282978633223732951384144492294330750906533932398875796123580064084073205941547967400776805924849955273078600679879167824150115859362818,1001mypidashujisuan.js:67 主线程从副线程4接收event.data-5.22954018637707908957987827016563024399583887383417984926531077046080347359218778704421648646828767593614372233539876056983883159062094289589638225622113722519758678223552391893810561218080190701264598383641657562103851282895630636292114928025657100409874628815922094791762469116183099029836622582639763594414055903729541150668306475948709574271671879601787711134185851651959099442969472516439132500550875021073917026250087414508106651246816947550596471878985412320496918195592302126766417218560411325491700502034725581305135666852991855691580486505559871533550732419013479039710490509212371916541305811103152022674790401673083156556456807545872705342563006758004568163899606487035190999673519834170270614770627203148682127063641667064268973598078314519723932950477749907878209187002189159098629028572601817271489881457633243969597818044171396534204117904175052328496760470260723650243451403263400224671194668181048009804355759297534666471200746752848627408592240866389143471356991422294702226907336469027262824547326393405294500400512868266539233369433337911799239959768382712144700742860427839865274101714073519201665350551556059927071365822009343580513781854505605639669232466638641289285332477060538491556108184867066440310969482512703741665003116899874231348175633225426099865806233690389556807019311185803212918220119745852099662264135199173896539873413444380721824422841369089646700068333184531319279307978660950936343183594919769520363453103100820944151364398430749513772167594858405561584883571765265350858143579505053893933335824502148905946399383567707975259984357331875188643383015669424640483379871095307381609413376344996241090366267446297369745761037221922921315179831464281868713109628554017325572589227301055316311397693434727328190576537646901487660195649602242705740059411902889459108574834307281796677316362079795043018892239985749994124741401556576424813777335392056048028198476516020476551027668722822453670377905458390370473780558099559510229214723402726645763879487004069486308920228893821056583395778375982950448795088693033181953216312741870234850722378827918793725758715854804829792697780571166311773319149236462781101409749425262347639751799144591847151097278559624400092595532672527202446526801101101896000867041545769273186043186049732341287225811391358078376303280882829757805110747609096365535215638586626041712108291088693731389926078328188184489805070890824478625068679961339452176915742669973470646075264102185319649640986940913233509314879837160378614957265657013488088516249541615233875105894025036991887540583812132875000939872394506078945010653289521120423362902716135130718545819796280674848624663911655974093340513832843891992803378541024205010944055430204823120969031818895293605070404993385536176871421125093930962618205970905981847594515351926169150219234220604125375379666409184790964339807044229378712429957720231026825863032090022591546577883458187357384759873607953158507418775680408939064170993501357348166848137903599685288912782459060976777541827055e-11,1004mypidashujisuan.js:67 主线程从副线程7接收event.data2.38126583625257779606706600952576340060173804123137052781882941182638665806618743878826343795352569916270471672262626128933319329035465286953510401208872210611428562063011773949973516678551257709289714515498081170801617660966989048759297001401838653712573703936542841526451195419752106556088433052771058283452867555174300907893192882383236494566015387207496851459605238583805774996037561690525377066760048245980368669649216149558735256112444848188177455840662773160218186886026420529955969282030995538393090775518761988371475747269384179448730012413850366363392565848355980066653562873875479391028347383436422646772459292525344220849088226073962603666637549837115769555405810995869517671624562599263244948891688205942902801736359969516334215356136376464671301680140555136036870067799641617291352601251733026882993201932869181655879214244966684683844476493256220362742927902224445422586662544025149470710724616629698552952409852877952553049903331616808890403665120814348648011187864290149970456809159273132449722976911835734975447576263796888481654530389844241576891911023362137961054431287341841590217558643448328661992064248288596812005108097360052176830783335943794383894049213851901773222092871447961572766293119151105651064025611750032651903556362237182360929026057106372780601884878260429195326212881455576357612406065052291693539691166341024952989759562960666644023547670324194154673221936723828203956509735499049144393115678898320294108597427472322671898643803198041033372278614514687450215755539863664923432186511031747750136922091755048127518434695033286395142526463088180979848719115719379055232931962457348823511020996926004310346533298674882020942747972794218620269908966298942528859555187728234055857823234185945368647585550801442967922818718425498480383771345518664024002474031919612192355187251459509234594663281210296913073509170104350549178934484738253074395357723803177901699111137792908397346973349443498526564108275236648620312260404667991232203042844339074965559926668835160985869875479198182917259288441106912390730648232393617833177359180321881149047932404918220356901077840155664217760483641531573889374813957061127916432512238248602241639910799511655182321312659532506335958624507225652740065614275109420598834419488427286592402273685202233478738014683818964776846317127635889905410315064853889397374923775207148195649720091065614970235588585102889213706489312544577709714391895465792738092857312578007883908789472559914507901837144054014495823881554313117900635887182389992811956822455600158050382703421477111978710157200550566624638117016640953970360684346550042481425043191173169974273099867502825595728319657774004852751650782079779711094907242364340523460643136101563423290283378355219786128302951092056614509324498331823128998577138154129543369320886179386819234980864646209172720911161699348057556582861438842858924015487300574271525403087817898693204349930875157160375923717938964653061080480649297925176117551376917768743634041281702213164697729443722020527225878491e-20,999mypidashujisuan.js:67 主线程从副线程8接收event.data-1.98601694415512339766491991588008632644292745649127419293796343950673781433742377648677436819992965282438492559941828238257240086765627429321877167935993135187467874649647315891304002030597581772058939523782033129865850729446998189445530642099268435821047604705030969622588943335013768539149317809106438889194956945349113988668165862727537442354409531181831673788393593948090826732692100525119553929195608784919783256174409282281311750145459262698388127943935495462188020626149381244003026717378467770869562461033273851180720359567217410306632373777590310379803180696195815193337342732204768833878107512007673245305308624463451911293021871352124541547056929268376905289748079142125388968521294335943250194346134283752075252533605633620216201304529099051472535273135857144599050280632820300183968832635448022193019191726341442415798982192475382325984296578093712592497896724407780057274183569864469016096129162852656006881359593673119379786948082064308991961260397402396914942657837279659456379139292775569382446268238934905963923879491032221464117218543397635591847888542482831554387257273118973682186831322474120668854238754496391606531118486788292299813350977117046481985655015872843966466880791887726865915419279680763777406430321522338145782407361064014938108849110596957517273516143140996293090159597314093766833114692627522751598279171475155295466987081822682086574309554977589315081635267561996170953763864550914436753538614084110832232406703817555469475470144258685434280379034481079305024895467542693623711353413281197068495604068713427298477784264048237988929376307375799018200167885077990832412242270331520800437658837867484472495519793842797632312713947633002759113074395584939727567050076539201007001861531793555247483514651787459368850392022851620607829286155212257482857184729142482316006936833817760911100580427297194808172579245479090845211024590244302747606130264866135161230177351881606398929143086502180354145968633148201457575276430686467073046672948063062728375295480979327990175834016334508692232078179693233199813507655262244204958760310542991185113716019953707894292202670252141382065064463386885864925598176667076539456249311478667728989251024478542939678329117359378757948610110178163745071682491078275129657684683159719393118317359657288505361685376329118495936722348173828692385167664952055742317501679123965048087421306019696408469312388739988047959605975841190928393121136386947740031819281791387459088008348817546811350366543986440970575652052591594370712408193786951552762381316401876233177634998668850845806945137837800432323055547527327796560613900914290260956859595606244297407430192950802784320766993584416632358212695263010479236426626386986120882993917857078146132636611495940626923700933106049711854124453981555885306435872511013685840806100029472313993506620251606363220282247635284614375863411204137576451830846037949152274417005003949749215888450498111404981320257366025075440921970208202396362274836829852419815645291805532878181244612713360861543971955713e-23,1000mypidashujisuan.js:67 主线程从副线程5接收event.data3.78997628626363685095526140408189605419784548290384904140967521969333176368316471122472887312116133838201741059300373431402253066068885900286112354852003868478886450824761569080925175507379337682255972935135915748089179990129430225513983971131331726568996833034784372144183894332740807259407156338975813882155287645887210831300826086424171040971117888165926910334527209400188888410656742809434292377448557902598960317435316192914255544199337985125394289436456677704075049653206932489568955947489934447997526624393352057394115708560377959182037212763199384372788001845862551470920419773458770831603403949627125109329284258147419547216367804714243463332875025804938733067711177155624483862848430610434334564950858070062973284658698111390288792006183997590590477884633732838734220959094600623106560962930211102948045802668545785358062273856615977439432966090050829402373814208722590974716585819426007740764590150939071720206608178802362638070378284395438410581300244690412238992183597281276625785438490835322712797088259134818657928681504346312158416675961038417279960370990096677258672622859012704321347329887004098089725465323332461091985582852851231323934605975613456413180074818964631294649643946832723844576247363740511621683965937246817952830423915357848128398536971319795100808709344805779083989072992491928617228122760691877015237105140117492804646987432359822232375902547735632831355672660164244783629450600854175615553903140983729296574980553491857778592628448030455336525229850892515012571946955315028081438407972506294094835465627534423471948546486799469254076993290490799560833330165323829110156943685708491374331341527651626739588613145770483310973849966241415776325967919153237727186296776445758666859918067292867461836272844939675429885362802325772512962674387999822520553550745359850783819684498731416635711498607041520173019657445694711224361893470642209586599436423575388273602684862866930552589205484673960690690431877792175421366207858622548762470090282941387453492402599336961302891257719326772964806311020228663894356678936934994500601846382859528979729714502739623378023122730277661600673008192790071453291183944759363456758638569646842354131719958038051523822779542999923037444030892224046901518735748513120603796280374871723678647382345594405112772989369273969299565641784399334300146441876301081925364761673430071295969960332278319367031341329410408368416325531305762691761899338087927243736957735516155066678356778356935544281084854199268627734520621897138920935240599122963397266563251919445954701726262072708891135028205003297796074428430714982788303673219333160629093350035527014280091297678307994896957065018404024209188175888443556570089611398658546941776990017985561063982929572033051039635464912695815861345374660943898307600740695179495090350648796504638892162429142864687073555177359433238407544851138755809608891994241205993818420233315981491610837271169331284455609342782524130649572836856343332969969238197750434770321449289956396975017025196847233099719391008955e-14,997mypidashujisuan.js:67 主线程从副线程3接收event.data8.17736604635702312815904586173679522463660896858480909499180452394176323000011534950971747593700735436554751900488294821275784572927850582835380551019282997820100630645277748406727833072962346292589730177489847819544296296773048970417652739458188714898478672377317894731578789463454189143532443448558896563290599313913895119319494330472972045763621555989308976570225931064323140698889392487106754226199579818226561587975188915377777370501458753062628238070592964773311628025521044511817138095270311064191021926252966378678402818023204001386753665846211627819274538464022151866618980865261852907786466039896408530691398839077788864118573853783894702016306425845822604081468814939873660900928184146888951389374181030214027946512665155110855657536160730458345522660956528162539004828598870029155609506339897096279138696540261335686666181749365448625821299727438325397926824021092369427993567876845916487605473166080128995016957332717808744508692280578765660382973592332110875766256951036964425807081789059859041505112548336680072983102220126929884915255488018895250842241237119979857514664060655990578462332793702316111205280283141569588691505486436619072426576936298440673664496918206123461066060140436811683509161534763703544718047680877238250774758671875681673765732771057175252137669267564548531611422947987944294002200181760962232458271481056474012165957339979256301168412794697224857327159532831842932049806101937758629968873051089974880658846410285270487951918252533034823245133624001721795720748732671930970001142422219857675467985975462570981286897327919815628692410590248226961245339979291244890341144284025106732882356057630982657713576875500168498039169319588247557855883169775004617601445144373912318397358192212237681333388444548442771611254075008930439174965275254739879989950725994484693298626381133126762613594140353726031669667010571780032614653874775252620999207297564362333761922787845603637659136998180623208056257808381574362592731313529947063273385746401139172536051249491722051713071042855115085194963443621004837694529946544719534812730730661306811682484618939294949957568763669695563894173498687348480589736274936349976133032171629880480253155425639176925769174357898482425397061092727347062959059095666737013612956286332644431777222072077954147912790754141583969050972548842005946711866391469403167853665072857529445084418229929834992209671942871415585819708600061305768222263889239726162797791706309008553499181638481183000529371178347419898898290254850599571742933414407257793783520596609356848296191045820469145166372355802816435804312036911757533344143841488711218148027396132411522553903220161903963296781912855019716868296480735810877648757859117783213343008222715496107067923505918193611993368259277990217647360633311137592821027226400690702748330527727229786676301786526587440510160477054800324325056712392940170691766090912544582238030530788724190534520802247583545063728574051596038621809651963695685895703993458581897829856510633428538025151667365791770989130824386e-8,1003mypidashujisuan.js:67 主线程从副线程6接收event.data-2.94045250629683958312993100522167492771396250860665997764082874089878951302069380262002467649410784876397105679527813113996906683637964676620153938867573102611859393589959961325203958879724225336448621588053160002930419131097093524824047180152084278132996500038322661655616157809461368282282823595472766937437427869087592318742082872482606418477414541735753060077311260323003550348408940547375406032385535531295970356706598635818441819500542969323848917632662969182296122208634523716614739385683882934928229218275669334775201813975001709125158867094630804536525646786413084151316773086438254587614723536094849482105768933302814397059475326297676947227701078865381043167504327956561975302189867570915600417553733278430340621823154456777152025722232990619290753166463687123443978890805611985219154956921910500667598861169983180505370130202211128574178354040043909304697798127820187657925074995550261540189279422139048917190305818575286477443569332940180141212190062538565208387022071867650639427356150865322919255362559154142808584911135579315868741756133356774803516154415349509687464328641544641962169042109405751671678873210997534153844940388330237954235197732823774601320145738220800252731970743438651647867103785353551890609436895526609858831277305127709083975732149629061413446353385978192850420450568419121023209065914569491258936635506545731401167151203819339252176315422648848361046741484844807948747948937914214983567653260160916907375169210361473202563204170957770930402503618181254032936881435054060307385093434320561188014893896722980493043770746090525424563245244611390482823584632054142106184987440938797345494403108381739390760193911062386086842798530965321613484199074002302509510193482267267537867894867388236775475335520746536530308777748080375068313993004583707212456163880081851392280775869202711881657615666048867648382080854276212000516720834890093222586862809801025094043805213233572362326701211420361260244994975731961420067885426357388881473147902324749024898623464246964449562299624783015249399712446298114746649395576605713770441783183770338217046832049352239881114426719693208540776031137480260264835643532284841391986628561777713860373914331828721570341768469267304985829707853185517799729421024682651020252413213273025956937322271770700546363516259844145151330630118761513673206997548303333404526925359847194133753873075035096576835533199314280215591649773205517474548036264867889371468384330366703634765524849472418918428536099847402561690739537476502239424496500654553331492786058053869451880983219086790021869484075259858537962405272785741000448016070941668699297818121295738999770028771863563984053711327405297752065148979645830972478446594070272966762833128321231740090699115160483130509303547084462419587736137657658872290701511159690861061045355509876945281822909741014459668976421426850703391847092104931736090704940392368634345896486673420172452708773164865957688772591315235012413389841942366355109288390043332732887428279861784020411660761829778727872301814507e-17,998

360fans_uid43274 发表于 2019-4-13 14:08




360fans_uid43274 发表于 2019-4-13 14:14


index.html<!DOCTYPE html>
<html>
    <head>
        <script src="../bootstrap-jquery/jquery-3.3.1.min.js"></script>
      <script src="../bootstrap-jquery/bootstrap.min.js"></script>
        <link rel="stylesheet" href="../bootstrap-jquery/bootstrap.min.css">
      <link rel="stylesheet" href="../bootstrap-jquery/bootstrap-theme.min.css">
      <style type="text/css">
                        * {
                                font-family: "Microsoft Yahei";
                                text-align: center
                        }
            
                        #nav {
                float: center;
            }
      </style>
      <title>圆周率计算多线程</title>
               
      <script src="./decimal.min.js" type="text/javascript" charset="utf-8"></script>
      <script charset="utf-8" src="./mypidashujisuan.js"></script>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      <meta charset="utf-8">
    </head>
    <body>
                <nav class="navbar navbar-default" role="navigation">
    <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand " href="#">masx200的github</a>
    </div>
    <div>
      <ul class="nav navbar-nav">
                <li><a href="../index.html">首页</a></li>
            <li class="active"><a href="#">圆周率计算多线程</a></li>
            <li><a href="../花密网页版-完善修改版-响应式的导航栏-20190412/index.html">花密网页版</a></li>
            
      </ul>
    </div>
    </div>
</nav>
      <div>
            <p>
                <span>
                  选择线程个数:数量 ( 1 到 12 之间): <input id="thread" type="number" name="quantity" min="1" max="12">
                </span>
                <button id="start" type="button">开始</button>
            </p>
            <p>
                <span>
                  选择圆周率位数:数量1000* ( 1 到 100 之间): <input id="pichangwei" type="number" name="quantity" min="1" max="100">
                </span>
            </p>
      </div>
      <div>
            <textarea cols="100" rows="100" style="width:100%;height:100%;margin:0 0;text-align:center" width="100%" id="tp"></textarea>
      </div>
    </body>
</html>

mypidashujisuan.jsonload = mytestpi;

function mytestpi() {

    getConstpinewhighefficiency105()
}
;
function getConstpinewhighefficiency105() {
    document.getElementById("thread").value = 8
    document.getElementById("pichangwei").value = 3
    jisuanfinishflag = 1;
    threadgeshu = 8
    x = 0;
    piwei = 3000;
    myptext = document.getElementById("tp");
    myshurukuangneirong = " ";
    myshurukuangneirong = myshurukuangneirong + "UserAgent: " + navigator.userAgent + "\n";
    myshurukuangneirong = myshurukuangneirong + "开始圆周率多线程测试\n";
    myptext.value = myshurukuangneirong;
    document.getElementById("start").onclick = mystart;

}

function mystart() {

    jisuanfinishflag = 0;
   
    if (document.getElementById("thread").value >= 1 && document.getElementById("thread").value <= 12 && document.getElementById("pichangwei").value >= 1 && document.getElementById("pichangwei").value <= 100
    ) {
      piwei = 1000 * Math.floor(document.getElementById("pichangwei").value);
      document.getElementById("pichangwei").value = Math.floor(document.getElementById("pichangwei").value)
      threadgeshu = Math.floor(document.getElementById("thread").value)
      document.getElementById("thread").value = threadgeshu
      document.title = document.title + "-" + "线程数为" + threadgeshu
      myshurukuangneirong = myshurukuangneirong + "线程数为" + threadgeshu + "\n";
      myptext.value = myshurukuangneirong;
      eventdata = "圆周率计算" + piwei + "位" + "\n" + "计算圆周率中......" + "\n";

      myshurukuangneirong += String(eventdata);
      myptext.value = myshurukuangneirong;
      Decimal.precision = piwei;

      strt = new Date().getTime();
      p = new Decimal(0);

      myworker = []
      myworker.length = threadgeshu;

      finishflag = []
      finishflag.length = threadgeshu;
      var worker1;
      if (typeof (worker1) == "undefined") {
            worker1 = new Worker("mythread1.js")
      }

      for (var i = 0, len = threadgeshu; i < len; i++) {
            myworker = worker1;
      }

      myworker.forEach(function(currentValue, index, arr) {

            arr = undefined;

            arr = new Worker("mythread1.js")
            arr.postMessage();
            arr.onmessage = function(event) {
                console.log("主线程从副线程" + (index + 1) + "接收" + "event.data\n" + event.data);
                var p1 = new Decimal(event.data);
                p = Decimal.add(p, p1);
                x = Math.max(x, parseInt(event.data))
                finishflag = 1;
                threadfinish()
            }
            ;

      });

    } else {
      alert("输入错误")
      document.getElementById("pichangwei").value = null
      document.getElementById("thread").value = null
    }

}

function threadfinish() {

    if (threadgeshu == finishflag.filter(function(currentValue) {
      return currentValue == 1;

    }).length) {
      endt = new Date().getTime();
      durt = (endt - strt) / 1000;

      eventdata = "计算完成,用时" + durt + "秒第" + x + "次\n" + "圆周率" + piwei + "位" + "\n" + p + "\n";
      myptext = document.getElementById("tp");
      myshurukuangneirong += String(eventdata);
      myptext.value = myshurukuangneirong;
      jisuanfinishflag = 1;
      myworker.forEach(function(currentValue, index, arr) {
            arr.terminate()
      })
      x = 0
    }
}


mythread1.js
importScripts("./decimal.min.js");
var piwei;
addEventListener('message', function(event) {
    piwei = event.data;
    threadall = event.data;
    threadid = event.data;
    console.log("副线程" + (threadid + 1) + "接收" + "event.data\n" + event.data);

    Decimal.precision = piwei;
    var p = new Decimal(0);
    var a = new Decimal(1);
    var h = 1;
    var x = new Decimal(0);
    var fu = 1;
    var t = new Decimal(1);
    for (var i = 0, len = threadid; i < len; i++) {
      fu = -1 * fu;
      a = Decimal.mul(a, 1024);
      x = x.plus(1);
    }
    while (Decimal.abs(t).cmp(new Decimal("1e-" + (1 + piwei))) != -1) {
      t = Decimal.mul(h, fu).div(Decimal.mul((2 ** 6), a)).mul((Decimal.div((-(2 ** 5)), (Decimal.mul(4, x).plus(1)))).plus(Decimal.div((-1), (Decimal.mul(4, x).plus(3)))).plus(Decimal.div((2 ** 8), (Decimal.mul(10, x).plus(1)))).plus(Decimal.div((-(2 ** 6)), (Decimal.mul(10, x).plus(3)))).plus(Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(5)))).plus(Decimal.div((-(2 ** 2)), (Decimal.mul(10, x).plus(7)))).plus(Decimal.div((1), (Decimal.mul(10, x).plus(9)))));

      p = Decimal.add(p, t);
      if (Decimal.abs(t).cmp(new Decimal("1e-" + (1 + piwei))) == -1)
            break;

      for (var i = 0, len = threadall; i < len; i++) {
            fu = -1 * fu;
            a = Decimal.mul(a, 1024);
            x = x.plus(1);
      }

    }
    postMessage(["" + p, "" + x.plus(1)]);

})

360fans_uid43274 发表于 2019-4-13 14:15

我后来又写了一个多线程圆周率算法,结果发现开8线程以上的时候,360极速浏览器跟其他安卓浏览器没有速度上的差别了呢,测试用的手机是麒麟960,8核心
我这个圆周率计算方法是单线程的,可能是360极速浏览器自动优化成多线程了?
页: [1]
查看完整版本: 安卓手机版360极速浏览器,性能测试,没想到竟然比chrome快10%?