Promote the local electrification process BYD Han EV appeared in Latin America.

Don’t easily provoke a test drive to experience the brand-new Chinese DM distinguished model.

BYD has its own expression of new energy products, which can directly print the number of 100 meters acceleration on the car body.

Kaihan EV circled Beijing Sixth Ring Road twice. This endurance performance is too real!

BYD Han is divided into two kinds of power matching: Han EV and Han DM, and today we are driving a high-performance version of Han EV four-wheel drive, which is its pure electric version. The official NEDC cruising range is 550km.

Yan Wang, who comes with black technology, shoots BYD Han EV.

Speaking of BYD Han, in addition to the most eye-catching new generation of Ferrous lithium phosphate "blade battery", Han EV actually has many black technologies, such as charging for 10 minutes and battery life of 135km. …

With a budget of 280,000, will you buy a low-priced Model 3 or a Han EV?

With the gradual increase of domestic Model 3, Tesla is getting stronger and stronger, and BYD Han EV pricing is aimed at Tesla. Who will you choose?

Domestic leader in new energy field tests BYD Han EV four-wheel drive version.

If new energy vehicles give traditional car companies a chance to overtake in corners, I think BYD Han has done it. What is the performance of the Han EV four-wheel drive version standing at the peak of the car system this time?

Fuel consumption without charging is 5.9L! Which brand refreshes the limit of hybrid energy saving?

Han DM

Set thousands of pets in one test drive BYD Han EV four-wheel drive performance version

I used to have no money to buy BYD, but now I have no money to buy BYD.

The new Mercedes-Benz GLC officially went on sale for RMB 399,800-475,300.

Recently, we learned from the official Mercedes-Benz that the new Mercedes-Benz GLC has been officially launched, and four new models have been launched. The official guide price range is 39.98-475,300 yuan.

Haval H6S was officially listed on October 30th, with a pre-sale price of 138,900 yuan.

Haval H6S will be officially launched on October 30th. At present, the pre-sale of the new car was officially started on August 27th, and a total of five configuration models were launched, with the pre-sale range of 138,900-164,900 yuan.

Toyota Flanders/Tanks 500 and other leading cars will be listed in the near future.

The number of new cars unveiled this time is relatively large, mostly joint ventures and domestic brand new cars, but there are also many new cars with bright spots such as Fenglanda, Xingyue L and Tank 500.

Revealing the world’s largest "pot cover": the reflecting surface is equivalent to 30 football fields (Figure)

  Xinhua News Agency, Guiyang, July 3 rd Title: Revealing the world’s largest "pot cover": 4,450 reflection units spell out the world’s largest and strongest "Eye of the Sky"

  Xinhua news agency reporter

  Remember what the "pot cover antenna" looks like?

  On July 3, 2016, the world’s largest "pot cover" with a diameter of 500 meters was erected in Guizhou karst tiankeng.

  It is the 500-meter spherical radio telescope, the largest and most powerful single-aperture radio telescope in the world.

  It is called "Eye of the Sky", which is used to listen to the sounds in the depths of the universe and observe the mysteries of the universe.

  Start with Xue Huadian on old TV.

  When the old TV can’t receive the signal, the screen is not blank, but Xue Huadian is flashing. In fact, these Xue Huadian are electromagnetic wave signals, including radio emission from space.

  In 1933, scientists in bell laboratory accidentally discovered the stable radio emission from the center of the Milky Way with a highly sensitive receiver, which opened the door to radio astronomy.

  Anyone who has used the "lid antenna" knows that the larger the lid aperture, the clearer the TV picture. For radio telescopes, the larger the aperture, the farther you can see. Radio astronomers all over the world are pursuing to build a larger-caliber "pot cover" to improve the sensitivity of radio telescopes.

  Peng bo, a researcher at the National Astronomical Observatory of the Chinese Academy of Sciences and deputy manager of the 500-meter spherical radio telescope project, said that the radio telescope had been short of funds at the beginning of its design and construction, but scientists were unwilling to reduce its caliber no matter what it was reduced.

  "Space is mixed with all kinds of radiation, and distant signals are like cicadas in thunder, and there is no super-sensitive ‘ Ear ’ I can’t tell it at all. " Nan Rendong, chief scientist and chief engineer of the 500-meter spherical radio telescope project at the National Astronomical Observatory of the Chinese Academy of Sciences, said.

  Previously, the most sensitive radio telescopes in the world were the 100-meter telescope in Bonn, Germany and the 300-meter telescope in Arecibo, USA. The former can move and "shake its head", while the latter is built with the help of karst potholes on Puerto Rico island.

  At the 1993 International Radio Union Congress, astronomers from 10 countries, including China, proposed to build a new generation of radio "big telescopes", eager to go back to the original universe and solve many difficult problems in astronomy before the radio wave environment was completely destroyed.

  "Building the world’s first large-caliber radio telescope is the dream of teacher Nan Rendong and several predecessors, which embodies the ambitious ambition of China astronomers." Peng bo said.

  At the end of 1995, more than 20 universities and research institutes in the United Nations of Beijing Observatory set up the China Promotion Committee of Radio "Large Telescope", and put forward the karst engineering concept of building a spherical reflector, namely "Arecibo antenna array", by using Guizhou karst depression.

  Since then, scientists in China have further promoted the concept of karst and proposed to independently develop a new karst unit, namely a 500-meter spherical radio telescope.

  In order to set up a new generation of radio "big telescopes", scientists have turned over the karst mountain areas in Guizhou through satellite remote sensing. Peng bo recalled that at that time, the Observatory commissioned two institutes to conduct independent search and select from more than 300 candidate potholes. As a result, Dawodang, located in Pingtang County, Qiannan Prefecture, got the highest score twice.

  The conditions provided by natural karst potholes in Guizhou have always been the most unique and the largest and strongest foundation for China Radio Telescope in the world.

  Not just a big circle — — What is the strength of China Radio Telescope?

  Whether you are near a large radio telescope, climbing the observation deck on a nearby hill or watching a virtual reality video, you can intuitively feel its first feature — — Big. Scientists describe it as a "giant eye for watching the sky".

  Wang Qiming, chief engineer of the 500-meter spherical radio telescope project at the National Astronomical Observatory of Chinese Academy of Sciences, said that more than 10,000 tons of steel were used only for the ring beam, cable net and six towers supporting the feed cabin.

  "The total reflecting surface of the telescope is 250,000 square meters, which is equivalent to the size of 30 standard football fields. Although the reflective panel is only 1 mm thick, it also uses more than 2,000 tons of aluminum alloy. " Wang Qiming said.

  However, the large radio telescope is by no means a "stupid" metal pile, it is the most sophisticated astronomical instrument. Due to the adoption of the feed platform with optical, mechanical and electrical integration and the secondary adjustment of the parallel robot in the feed cabin, it can realize millimeter-level pointing tracking without rigid connection between the feed and the reflecting surface, ensuring accurate gathering and monitoring of weak radio signals in the universe.

  The construction technology of the large radio telescope is also improving. Wang Qiming said that due to strict requirements, this big scientific project has promoted the improvement of equipment manufacturing capabilities in many fields:

  — — The cable net with active reflection surface has the characteristics of high elasticity, tensile resistance and fatigue resistance, and its ultra-high stress amplitude of 500 MPa is 2.5 times that of the national standard;

  — — More than 2,000 hydraulic actuators that help the reflector to be displaced can achieve accurate positioning and coordinated movement through expansion and contraction, and can also report their own state information to the control system to meet the movement requirements such as timely tracking and source change.

  — — Dynamic optical cable, which undertakes the mission of transmitting all kinds of data and information, can withstand repeated bending, winding and torsion and other mechanical properties and harsh natural environment tests.

  "Our original design concept originated from the Arecibo telescope in the United States. But compared with Arecibo, the active reflector system is our biggest innovation. " Peng bo said that the cable net structure of a large radio telescope can change with the movement of celestial bodies, driving 4,450 reflecting units on the cable net to form a 300-meter instantaneous paraboloid in the direction of radio power supply, which greatly improves the observation efficiency.

  Arecibo telescope is a fixed telescope, which can only scan a 20-degree strip area in the sky by changing the position of antenna collapse. The active reflector allows the China Radio Telescope to have a wider observation range, covering 40-degree zenith angle.

  The working frequency of large radio telescopes is relatively wide. Peng bo said that the feed cabin is equipped with a multi-band and multi-beam feed and receiver system covering the frequency of 70 MHz ~ 3 GHz.

  Zheng Xiaonian, deputy director of the National Astronomical Observatory of the Chinese Academy of Sciences, said that the German Bonn telescope with a diameter of 100 meters was once called "the largest machine on the ground", and the sensitivity of the China Radio Telescope was improved by about 10 times. The 300-meter-caliber Arecibo telescope in the United States has been unsurpassed for more than 50 years. Compared with it, the comprehensive performance of China Radio Telescope has been improved by about 10 times.

  Take root in the karst sinkhole and look at the deep space of the universe

  "Like other radio telescopes, the two main scientific goals of the China Radio Telescope are to patrol the neutral hydrogen in the universe and observe pulsars. The former is to study the large-scale physics of the universe to explore the origin and evolution of the universe, and the latter is to study the material structure and physical laws in extreme States." Zheng Xiaonian said.

  The earth’s atmosphere leaves two windows for human beings to explore the universe, one is optics and the other is radio. For astronomers, if the optical telescope is a microscope, then the radio telescope is a CT machine, which can obtain the ultra-fine structure of celestial bodies.

  "There are seven sets of receivers, because the frequency of observation in different bands is different, and the observation and research goals are different." Peng bo said that in the eyes of large radio telescopes, the universe and cosmic celestial bodies are a three-dimensional presentation.

  For more than half a century, the energy collected by all radio telescopes in the world has not turned a page, and the joining of China Radio Telescope will greatly accelerate this speed. And the energy collected means the amount of information to interpret the mysteries in the depths of the universe.

  "Since the birth of the radio telescope, humans have discovered about 2,500 pulsars. If the working hours of the China Radio Telescope are all used to observe pulsars, it is expected to double this number within one year." Peng bo said that pulsars can be used for pulsar navigation, pulsar timing array and other application targets.

  Nan Rendong believes that large radio telescopes may also find some unprecedented pulsar phenomena, such as a pulsar paired with a black hole, which may produce a breakthrough theory.

  Every little progress in the development of physics is accompanied by great difficulties and twists and turns. But at every stage of human civilization progress, physics has always stood at the forefront of liberating productive forces. Peng bo said that scientists used Arecibo telescope to discover gravitational waves and won the Nobel Prize in physics, while China Radio Telescope provided a great opportunity for natural science, especially physics-related fields.

  "The answer is yes to whether the large radio telescope that the public is very concerned about can be used to find extraterrestrial civilization." Peng bo said that it is a weapon to detect exoplanets, especially terrestrial planets. Because of its improved sensitivity, it can see farther and fainter celestial bodies. By detecting interstellar molecules and searching for possible interstellar communication signals, the probability of finding extraterrestrial civilization is 5 to 10 times higher than that of existing equipment.

  On July 3rd, after the installation of the feed cabin and the reflector panel was completed as planned, the large radio telescope will be debugged for more than two months, and it will be officially completed and put into use at the end of September. However, in order to optimize all functional parameters, it needs to be continuously debugged and improved in two or three years of observation.

  "After the completion of the large radio telescope, it will become the ‘ Sharp weapon ’ To maintain the status of world-class equipment in the next 10 to 20 years. " Zheng Xiaonian said, "I hope that China scientists will use it to produce results as soon as possible." (Note holder Qi Jian; Participating reporters Wu Jingjing, Hu Xing and Yang Weihan)

Daughter suffers from uremia several times. Father donates kidney to save daughter: I am willing!

  "Son, dad can give you a kidney, so you don’t need dialysis, and you can live a normal life."

  "No, Dad, I can’t have your kidney. I don’t want you to suffer."

  "The doctor said, as long as you pay more attention, my body is no problem. You have a long way to go, and Dad hopes you can live a normal life. " Dai Junfu, who rented Dujiangyan, tried to persuade him, but he could only say these words. He felt that the words were very pale, but all his thoughts were in his heart. It’s just that my daughter with uremia is also very determined and doesn’t want to drag her father down.

  If it is deadlocked for three years … …

  Finally, on April 2 this year, Dai Junfu reached his wish to donate his kidney to save his daughter. The left kidney he donated was transplanted to his 21-year-old daughter Dai Rui. Prior to this, Dai Rui had been repeatedly notified of critical illness.

  "I can save my daughter with a kidney, I am willing!" At the age of 23, Dai Junfu became a father. At the age of 45, he gave his daughter another life.

   Kidney donation deadlock

  I persuaded my daughter to accept her kidney for three years.

  After kidney transplantation on April 2, Dai Junfu returned home to recuperate, and his wife Zhou Liqun has been taking care of her daughter Dai Rui in the hospital. Their home is a two-bedroom apartment located in Zhongxing Town, Dujiangyan City. There are no tiles on the clear water floor. Although it is a rented house, it is also a warm home for three people.

  From the age of 13, my daughter Dai Rui has been ill for 8 years. In the past few years, this family has a regular operation schedule: every Monday, Wednesday and Friday, her daughter Dai Rui rides a battery car to Dujiangyan Red Cross Hospital for dialysis; Dai Junfu works in the front of Qingcheng Mountain Scenic Area, which is the main source of income for the whole family. Zhou Liqun suffers from Sjogren’s syndrome (immune disease) and usually does odd jobs in the local area to supplement her family.

  "My daughter’s illness, because of dialysis and review, did not study." Dai Junfu is sitting on the sofa, and he needs a cushion when he is still recovering from surgery. He said that before his daughter got sick, a family of three had the most ordinary happiness. On weekends, I will also go to the river for tea or visit the park.

  In 2010, Dai Rui was diagnosed with systemic lupus erythematosus. Dai Junfu looked around for remedies for this. He was cheated of thousands of money, but his condition did not improve. He finally realized that he had to be treated honestly in the hospital.

  In 2013, Dai Rui’s condition deteriorated into uremia. After talking to the doctor, Dai Junfu was very blocked and didn’t know how to speak.

  "Son, dad can give you a kidney, so you don’t need dialysis, and you can live a normal life." Knowing that kidney transplantation is the best choice for her daughter, Dai Junfu still made a bottom with Dai Rui.

  "No, Dad, I can’t have your kidney. I don’t want you to suffer." Dai Rui won’t do it. She is afraid that her father’s health will collapse.

  "The doctor said, as long as you pay more attention, my body is no problem. You have a long way to go, and Dad hopes you can live a normal life. " Dai Junfu tried to persuade him, but he could only say these words. He felt that the words were very pale, but all the thoughts in his heart. It’s just that my daughter’s attitude is also very firm and she doesn’t want to drag her father down.

  During the stalemate, Dai Rui’s condition was very unstable, and she was critically ill several times. Her daughter even proposed to donate her cornea. Once he was critically ill in the middle of the night, Dai Junfu had already signed the consent form for organ donation. Fortunately, his daughter came back from the gate of hell.

  After three years of persuasion, doctors familiar with Dai Rui also helped with ideological work, and her daughter finally agreed to a kidney transplant. "I pulled her to go through the formalities that day, and I was afraid that she would go back on her word." Dai Junfu immediately arranged the application for surgery and reviewed the materials. Because the surnames of the father and the daughter use the same pronunciation but different words, the two also specially went to have a paternity test … … And all this is to queue up for surgery as soon as possible.

  In order to donate a healthy kidney to his daughter, he insisted on walking for two years and walking for an hour and a half every day. Get up at 6 o’clock in the morning, go out before 7 o’clock, and walk seven or eight kilometers to Qingcheng Mountain to work. After work in the afternoon, if you want to go home early to see your daughter, you will go home by car.

   Father loves nothing.

  I bought a wheelchair in the hiking city and pushed my daughter for a ride.

  On April 2nd, the day of the operation, Dad came to the ward to see Dai Rui.

  "Come on, take a selfie!" Dai Junfu proposed. "Son, don’t be vain. See you later!" After taking photos, Dai Junfu advanced into the operating room. An hour later, Dai Rui was also pushed in. A kidney with her father’s body temperature was placed in her daughter’s body, thus giving her a second life.

  On April 11th, in the ward of West China Hospital, both Dai Rui and her mother wore masks with neat braids. This is a critical period after her operation. Once she catches a cold, it is easy to cause lung infection. Dai Rui is filling out the postoperative observation form, how much water he drank and how much urine he discharged, and his handwriting is neat.

  "I am very attached to my dad. I have to hold his hand when I go out to play. He always says that I am still like a child." Dai Rui, 21, loves to laugh and listen to Jason’s songs. She says there is a lot of positive energy in the lyrics. Dai Rui said that when she was a little girl, she lost an infusion for 40 days, but she could only sit all the time because she was swollen, but she really wanted to go out and "let out the wind." Dai Junfu bought a wheelchair for this and said he would leave. Jinli, Kuanzhai Lane and Funan River are a big circle. "Dad, your feet don’t hurt? My ass hurts. " Dai Rui tilted his head and asked Dai Junfu behind him. Dai Junfu was a little proud. "It’s no problem to walk again!" Say that finish, both father laughed.

  Usually for dialysis, Dai Rui rides a battery car alone. It takes about 5 hours at a time from waiting to getting off the dialysis machine. She fainted twice because of hypoglycemia. Once when she was about to fall down, Dai Rui quickly called her father. "Dad, I feel terrible. I am at Qingcheng Bridge." Say that finish, just passed out. Good-hearted passers-by quickly called an ambulance and sent it to a nearby hospital for infusion. Confused, Dai Rui thought he was still doing dialysis, and his left hand never dared to move. When I woke up to see my father, the first sentence was "I’m so tired, please get off the dialysis machine." Dad lovingly said, "You got off the plane a long time ago. Now it’s time to save your infusion."

  "My dad’s cooking is delicious, especially baking tofu and all kinds of dishes." Speaking of which, Dai Rui’s mouth is watering. Because of the drug reaction, she always vomited after eating for a while, and Dai Junfu would try her best to make her something she wanted to eat. With renal osteopathy, Dai Rui’s feet often hurt, and Dai Junfu massages her every day to relieve the pain.

  "My mother and I are both sick, and my father has to spend a lot of energy to take care of us." Dai Rui said, but Dad is also very diligent and responsible for his work. He is not only an advanced earthquake relief worker in 2008, but also an excellent party member. In recent years, in order to cure the disease, my father borrowed money everywhere, scrimped and saved, and was not willing to buy a dress. In the same period, the Qingchengshan-Dujiangyan Scenic Area Administration, where Dai Junfu is located, has organized two fund-raisers, and with the help of relatives and friends, the family can survive.

   The past of critical illness

  Traveling to Chongqing is the only foreign trip for a family.

  Every afternoon after surgery, it is a fixed video time for Dai Junfu and Dai Rui.

  "Son, did you drink water today?" This is what Dai Junfu is most concerned about. After the operation, Dai Rui needs to urinate more than 2000 ml every day. She must drink water very hard. "Drink. I drank too much in the afternoon and just got up at night. " Dai Rui responded. "Drink more when you get up at night, and don’t have sex with your mother ‘ War ’ Now she is the only one taking care of you. " Dai Rui seldom talks back to her father, but she talks back to her mother. Dai Junfu couldn’t help telling her. "I see, do you drink much water?" Dai Rui cares about Dad. "What you drink is warm water." Dai Junfu "reports" to his daughter.

  Hanging up the phone, Dai Junfu flipped through the photo album at home and talked about the only trip out of the province for the whole family — — Chongqing trip in 2016. "My daughter proposed it. At that time, she experienced several critical illnesses and was afraid that she would not live long. She told me that she wanted to go out and play once." Dai Junfu is a bit sad to say. When my daughter was a child, because he worked in the back of Qingcheng Mountain and his wife was also working, she could only come back once or twice a month, and her daughter could only live with her grandparents. Although I am a tourism practitioner, I spend my holidays in my post, and I don’t have time to take my daughter to a distant place to have a look.

  "Then choose a place closer. You need dialysis on Monday." Dai Junfu suggested going to Chongqing, and her daughter agreed happily. A family of three got on the bus and went all the way to Chongqing. "In a hurry, I strolled down the street and took a cruise at Chaotianmen." Dai Junfu felt a little ashamed.

  The father and the daughter have been putting on a dragon gate array all the way. My daughter said, "Sometimes I feel like a dream, as if I woke up one day and I was a healthy body." Dai Junfu said that in fact, he often has such an idea, so WeChat is called "Waiting". He always comforts his daughter, too. Huaxi Dushi Bao-cover journalist Lai Fangjie’s photo report

Musk: I was interested in cryptocurrency, but now I love AI.

On March 6th, Tesla CEO Elon Musk said on social media: I used to be interested in encrypting digital currency, but now I love artificial intelligence. "

According to media reports, Musk recently contacted artificial intelligence researchers and planned to set up a new research laboratory to develop a substitute for ChatGPT.

In addition, Musk’s remarks also suggest that compared with ChatGPT and Microsoft’s new chat bots, the chat bots he developed may have fewer restrictions on controversial topics.

Complete the world’s leading CT-FFR clinical research with Keya Medical’s independent artificial intelligence technology products: release of ACC.23 TARGET clinical research results.

In the early morning of March 5, Beijing time, the team of Professor Chen Yundai from the Cardiology Center of the General Hospital of the Chinese People’s Liberation Army published a special report on clinical research at the American Heart Association/World Cardiology (ACC/WCC)2023 Conference. Based on the artificial intelligence CT-FFR technology, the clinical research report on the treatment and follow-up of patients with stable coronary heart disease -TARGET trial, the results will be published simultaneously in the top international journals.CirculationJournal (TOP journal in JCR 1 area, impact factor 39.9).

The research was supported by the National Key R&D Program and the Beijing Science and Technology Rising Star Program, and combined with the research teams of cardiology and radiological imaging departments of several top domestic third-class first-class hospitals such as Beijing anzhen hospital affiliated to Capital Medical University, the Second Affiliated Hospital of Zhejiang University Medical College, Qilu Hospital of Shandong University, the First Affiliated Hospital of Xinjiang Medical University, and tongji hospital affiliated to Tongji Medical College of Huazhong University of Science and Technology. The correspondent of this research paper is Professor Chen Yundai, Associate Professor Yang Junjie, Deputy Chief Physician Shan Dongkai and Dr. Wang Xi from the Department of Cardiovascular Medicine of PLA General Hospital are the co-first authors of this paper.

01

Introduction to research

TARGET study is the first multi-center, randomized and controlled clinical study in the world to evaluate the treatment and management of new stable chest pain patients using the field deployment strategy based on machine learning CT-FFR calculation. The research uses the artificial intelligence CT-FFR computing technology independently developed by China (Keya Medical Technology Co., Ltd.), and a total of 1216 patients from six medical centers in China were selected. The pretest probability of obstructive coronary heart disease in the enrolled patients was medium to high, and coronary CT angiography suggested that there was a critical stenosis of 30%-90%. The researchers randomly divided patients into CT-FFR diagnosis and treatment group (experimental group) or standard diagnosis and treatment group (control group). The main end point of the study was the proportion of patients with non-obstructive coronary artery disease or with obstructive coronary artery disease who did not receive revascularization during the follow-up coronary angiography within 90 days. Secondary end points included major adverse cardiovascular events, quality of life outcomes, improvement of angina symptoms and medical costs.

The results showed that compared with the control group, the proportion of patients with non-obstructive coronary disease or obstructive coronary disease who did not receive revascularization in CT-FFR diagnosis and treatment group decreased significantly (28.3% vs. 46.2%, P<0.001). On the whole, there were more patients receiving revascularization in CT-FFR group than in the control group (49.7% vs. 42.8%, P=0.02), but there was no significant difference in the proportion of MACE during the one-year follow-up (hazard ratio, 0.88; 95%CI, 0.59 to 1.30)。 During the follow-up period, the quality of life and symptoms of the two groups were similar, while the medical cost of CT-FFR treatment group tended to decrease. It is concluded that, compared with the standard diagnosis and treatment strategy represented by cardiac stress examination, the on-site deployment of CT-FFR calculation diagnosis and treatment strategy based on machine learning will significantly reduce the proportion of patients who have found non-obstructive coronary artery disease or do not need intervention within 90 days after coronary angiography. In addition, CT-FFR diagnosis and treatment strategy tends to save medical costs and increase the proportion of revascularization in the selected population. At the same time, CT-FFR strategy is consistent with the traditional path in improving patients’ symptoms or quality of life and the incidence of major clinical adverse vascular events.

02

Research enlightenment

TARGET research results show that "CT-FFR strategy based on machine learning in the field is feasible, safe and effective".

In the past 10 years, the extensive use of coronary CTA has promoted the diagnosis and treatment process of coronary heart disease in China. According to statistics, in 2017, the total number of coronary CTA angiography examinations in China reached 4.6 million. Therefore, the simple diagnostic function of coronary angiography is weakening, but among the patients who have received coronary angiography in China, most cases have not found obstructive coronary stenosis in the catheter room. Part of the reason for this phenomenon is that functional examination is not widely used or advanced cardiac imaging technology is not available enough. TARGET study further emphasizes that coronary angiography should only be applied to those patients who are most likely to have obstructive coronary stenosis or benefit from revascularization, and CT-FFR strategy will significantly optimize the management of stable coronary heart disease population.

This study adopts the CT-FFR simulation calculation technology-deep pulse fraction independently developed by Keya Medical Technology Co., Ltd., uses deep learning technology to evaluate the physiological function of coronary artery, and uses artificial intelligence technology to evaluate the FFR of coronary angiography image, which is a deep learning technology independently developed and optimized based on the latest development in the field of computer vision. It can quickly and accurately analyze the non-invasive blood flow reserve fraction. In January 2020, this technology was approved as the first NMPA artificial intelligence medical device class III certificate in China, and now it has become the only CT-FFR product in the world that has been triple-certified by NMPA in China, CE in the European Union and FDA in the United States.

03

Pamela Douglas, MD (Duke Clinical Research Institute, Durham, North Carolina), former president of ACC, led the experiment funded by HeartFlow (PLATFORM and PRECISE research). She pointed out that the most outstanding thing about the TARGET experiment is the novelty of its on-site CT-FFR analysis.

Douglas said:

It is indeed possible that the field deployment method is cheaper and can return the results faster. In clinical practice, if CCTA is used as a first-line test, Douglas said, then the question becomes: "If you have borderline lesions, what should you do next?" For her, "this is a little obvious, because CT-FFR is only a software analysis. Although the previous products are very complicated, it is not without risk to make an appointment for a load test and ask the patient to come back later."

The researchers pointed out:

It is very important to deploy artificial intelligence computing in the field of TARGET research. "The advantage of using artificial intelligence algorithm is that it provides the possibility of field deployment, avoids the need to transfer sensitive medical data, shortens the calculation time and increases the participation of clinicians." They explained that although FFR can also be calculated by field computational fluid dynamics, this strategy is complex and requires a lot of resources. The convenience of machine learning will contribute to the application of CT-FFR in a wider range of scenarios, adding that "on-site CT-FFR strategy is practical and may be more suitable to meet the clinical practice needs in various clinical environments."

Academician Zhang Xueji, Vice President of Shenzhen University: If you master the sensing technology, you will control the world.

There are many opportunities for intelligent sensors. As the first of the six technologies in the United States, artificial intelligence can improve our quality of life through the combination of artificial intelligence and sensors. The development trend of intelligent sensors is to monitor in real time, be flexible and light, and the key is to analyze multiple parameters at the same time, be wearable and non-invasive.

"Have dinner with me and I’ll give you $300,000!" Football superstars fall into the trap of Chinese aunts.

"Have dinner with me and I’ll give you $300,000." In 2003, a female fan in China paid a lot of money to invite Ronaldo to dinner. Ronaldo was so happy that he didn’t know that he had fallen into someone else’s trap.

Speaking of Ronaldo, even those who don’t know football, I believe they have heard his name. Ronaldo’s full name is ronaldo luiz nazario de lima. If you mention Ronaldo’s achievements in football, you can even introduce him day and night without interruption. In addition, Ronaldo also has many nicknames, such as Ronnie, Fei Luo and Da Luo. Ronaldo was born on September 18th, 1976. When he was a child, his family was very poor, but it was his love for football that kept him from giving up this career, and he eventually grew up to be the king of football in the world.

In the growing experience of Ronaldo, Ronaldo can be said to have dealt with all kinds of people. Because of his high popularity, Ronaldo was still relatively strong in protecting his brand awareness when attending various activities, but what Ronaldo didn’t expect was that he actually stumbled in the hands of a China woman.

To mention this story, we have to look back to 20 years ago, that is, in 2003, when Ronaldo came to China for an exchange competition. After arriving in China, Ronaldo was quickly impressed by the enthusiasm of China fans. The scene of the game was surrounded by a sea of fans, all of whom shouted their names.

After the game, Ronaldo’s assistant told him that there was a female boss in China who wanted to have dinner with him. At first, Ronaldo refused. After all, his time is precious, but then the assistant said that the female boss was willing to pay $300,000 as a reward as long as he agreed to have dinner with her.

Hearing this, Ronaldo instantly felt very interested. He could get 300,000 yuan just by eating a meal. Why not go?

Before departure, Ronaldo specifically explained to his assistant that he must show the other party that he is just going to have dinner. If it involves endorsement or other things, he needs to talk about the price. After all, it is impossible to endorse a product casually, just 300,000.

After arriving at the scene, the female boss also made it clear that 300,000 yuan is only the cost of eating and does not involve endorsement. Ronaldo let his guard down. There were not only the female boss, but also many children who lined up to send flowers to Ronaldo.

The female boss also took out a jersey, expressing the hope that Ronaldo could wear this jersey to accept the welcome of the children, and told Ronaldo that this jersey was carefully designed by the children. Ronaldo then put on a special jersey, not only accepted the children’s flowers at the scene, but also performed a superb skill for the children at the scene.

Next, I entered the stage of eating. The whole process of eating was very relaxed, and Ronaldo didn’t feel any discomfort. After dinner, the female boss is also very generous to transfer 300,000 yuan on the spot.

At this time, Ronaldo still felt that the money was very easy to earn, and the female boss in China was really generous.

After Ronaldo returned to China, he forgot all about it because of training and competition. It was not until a long time later that Ronaldo heard the news of his endorsement of products in China from his friends. At this time, Ronaldo felt very puzzled that he did not endorse any products in China.

Only after watching the relevant advertising videos did Ronaldo recall the experience of having dinner with the female boss in China. Then Ronaldo also entrusted a lawyer to take the female boss to court.

The female boss in the story is Jiang Peizhen, the helm of Golden Voice. Jiang Peizhen was in charge of a candy factory at first, but the candy factory soon closed down due to poor management. In order to solve the dilemma, Jiang Peizhen found Wang Yaofa because she heard that Wang Yaofa had a formula in his hand. After being authorized by Wang Yaofa, Jiang Peizhen formally established Guangxi Golden Voice.

Relying on Ronaldo’s fame, Golden Voice quickly swept across the country, and the sales volume showed a surge in a short period of time. Jiang Peizhen has also become a myth in the industry, but this luck didn’t last long. Finally, in 2009, Golden Voice still had financial problems, and Jiang Peizhen was also included in the list of dishonesty.

Archsummit direct hit | Build a smooth natural flutter page

Instructors

Amoy Technology Department | Leisure Fish Technology | Cloud

"Fully strengthening the flutter fluidity, sharing challenges, online monitoring tool construction, optimization means to precipitate in component containers, and finally optimized advice."

Zhang Yunlong (cloud from), idle fish client experts.Since Netease, byte, Ali is running. At the current Department of Alibaba, there are currently responsible for idle fish APP packages, fluidity, start-up equation experience.

Outline

This sharing revolves around FLUTTER fluidity, respectively: 1.Flutter fluidity optimization challenge; 2. List container and flutterdx component optimization; 3. Performance measurement and devTool extension; 4.Fltter sliding curve optimization; 5. Performance optimization suggestions.

FLUTTER fluency optimization challenge

Business complexity challenge

FLUTTER has always been known by everyone, and the list controls displayed by Flutter Gallery (shown in the left) is indeed very smooth. But the actual business scene (shown on the right) is more complex than the Gallery list demo:

  1. Same card, more and complex (such as rounded) view control;

  2. When the list scroll, there are more view logic, such as scrolling control of other controls and disappearing;

  3. Card controls, there are more business logic, such as a different label, activity price, etc. based on background data, and there is also common business logic, etc.

  4. Because idle fish is an e-commerce app, we need to have certain dynamic capabilities to deal with frequently changed activities. Here we use the Flutter Dynamicx components of Ali to implement our dynamic capabilities.

Framework challenge

Let’s look at the overall flow of the list, here only pay attention to the free scroll phase after the finger is released.

  1. When the finger is released, the initial speed is calculated based on ScrollDragController.end;

  2. UI Thread requests RequestFrame to Platform Thread, and calls BegInframe to UI Thread at Platform Thread.

  3. The UI Thread Animate phase trigger list slides a little distance while registering the next frame callback to Platform Thread;

  4. Ui Thread Build Widget, generate / update the renderObject tree through the three tree DIFF algorithm of Flutter;

  5. UI Thread RenderObject Tree Layout, Paint Generates an Scene object, and finally passed to Raster Thread to draw on-screen;

The above flow must be completed in 16.6 ms to ensure that the frame cannot be guaranteed. Most of the cases, there is no need to build a new card, but when the new card enters the list area, the entire calculation amount will become huge, especially in complex business scenes, how to ensure all calculations within one frame of 16.6ms, Is a small challenge.

The figure above is a sliding devTool sample, and the Carton stage occurs when the new card is on the screen, and the other phases are very smooth, because the scrolling speed is attenuated, so the carton interval is also getting bigger. Because most of the time is very smooth, the average FPS is not low. However, the new card is built at the time of production, which gives us a stylish body feeling.

Challenge of dynamic capabilities – Flutter Dynamicx

The free fish APP card uses the self-developed Flutter Dynamicx to support our dynamic capabilities. Basic Principle: Online Edit Layout DSL, generate DX files and send it. The end side generates the DXComponentWidget by parsing the DX file and combines the back card data, and finally generates Widget Tree. FLUTTER DYNAMICX technology brings dynamic update capabilities, unified monitoring capabilities (such as dxcomponentwidget monitoring cards), good research and development insecurity (online DSL and Android Layout, and optimize Android), online editing capabilities;

But in performance, we also pay a certain price: DX cards add time to the template loading and data binding overhead, Widget wants to recursively create through WidgetNode traverses dynamically, and the view nesting layer will be deeper (followed by later).

Description: Flutter Dynamicx Reference Ali Group DSL Rules Realization

User’s sense of physical challenge

I have already described above, and the card in the FLUTTER list is more obvious.

When Android RecycleView occurs, the physical feel is not obvious, and the FLUTTER list has occurred when the card occurs, not only the time pause, but also a hopping on the OFFSET, and the physical feeling of small card is also changed. It is obvious;

Suppose the list content is simple enough, scrolling does not happen, we also found that the Flutter list and Android RecycleView are not the same:

? Use ClampingscrollPhysics to feel the feeling of similar magnets when the list is stopped.

? Use BOUNCINGSCROLLLPHYSICS, the list is started, and the speed attenuation is faster;

On the 90Hz machine, the early flutter list is not smooth, the reason is that the touch sampling rate is 120 Hz, and the screen refresh rate is 90Hz, causing partial screens to be 2 touch events, part is a 1 touch event, last Resulting in rolling OFFSET effects. When the Flutter 1.22 version, RESAMPLINGENABLED can be used to re-sample the touch event.

List container and flutterdx component optimization

Telling the challenge of Flutter fluidity optimization, now share how you optimize the smoothness and precipitate into PowerScrollView and Flutter Dynamic components.

PowerScrollView design and performance optimization

PowerscrollView is a snarefish team’s self-developing Flutter list assembly, with better packages and supplements on the Sliver Agreement: Data increased deletion, complement local refresh; layout, supplemented the waterfall flow; incident, supplement the card on the screen , Away, scrolling events; control, support for scrolling to Index.

In terms of performance, the waterfall flow layout optimization, local refresh optimization, card division optimization, and sliding curve optimization.

PowerScrollView Waterfall Flow Layout

PowerScrollView Waterfall Flow Layout provides longitudinal layout, lateral layout, mixed arrangement (transverse card and ordinary card mix). Nowadays, most of the listings of the hiped fish are available in PowerScrollView’s waterfall flow layout, such as the home page, search results page, etc.

PowerScrollView Waterfall Flow Layout Optimization

First, through conventional cache optimization, cache each card upper corner X value and which column belonging.

Compared to the Slivergrid card into the list area, the waterfall flow layout, we need to define Page, card admission to create and leave the field destruction need to be units. Before optimization, Page calculates cards in a screen visual area, and in order to determine the starting point Y value of Page, the primary layout needs to calculate the Page N and N + 1 two pages, so the amount of cards involved in the layout calculation is much lower, and the performance is low. After optimization, the approximation of all card height averages calculates Page, which greatly reduces the number of participating in the layout card, and the number of cards destroyed by Page also becomes less.

After the column cache and paging optimization, use the idle fish Self-developing Benchmark tool (follow-up) to compare the waterfall flow and GridView, view the number of frames and the worst frame consumption, can find that performance performance is basically consistent.

PowerScrollView local refresh optimization

Leisure fish products expect users to browse products more smooth, will not be loaded by loadmore, so the list is required to trigger LoadMore during scrolling. FLUTTER SLIVERLIST When the LOADMORE supplement card data, the List control is tender, and the slterlist building will destroy all cards and recreate it, and the performance data can be imagined very bad. PowerScrollView provides a layout refresh optimization: all cards on the cache screen, no longer recreate, ui thread Optimize from the original 34MS to 6MS (see the lower left picture), the right image is viewed by Timeline, the depth and complexity of the view built Optimize.

PowerScrollView card fragmentation optimization

The second figure 2 card is the early search results page of the idle fish, and it is not a waterfall flow. To view the Timeline chart when the card is created (adding DX Widget creation and PerformLayout overhead), you can find that the complexity of the card creation is extremely large. On the normal mid-range machine, the UI Thread consumes more than 30ms, to be optimized to 16.6ms It is very difficult to use routine optimization. For this purpose, two cards can be disassembled, and each frame is used to render.

Directly see the source code, the basic idea is to mark the card widget, when the card is true, the right card first _BuildPlaceHoldercell builds the Widget (empty Container), and register the next frame. In the next frame, the right card is modified with NeedShowRealcell for True, and self-laminate, and then build real content.

Is it delayed to build a true content of the card, will it affect the display content? Because the FLUTTER list has a cacheextends area on the visual area, this part of the area is not visible. In most scenarios, users don’t see the scene of the blank card.

Also using the FLUTTER BENCHMARK tool to perform performance test, you can see 90 points before and after the card division, 99 packet consumption has a significant downgrade, and the number of lost frames is also reduced from 39 to 27.

Note Here, when listening to the next frame, you need widgetsbinding.instance.scheduleframe to trigger the RequestFrame. Because when the list is displayed, it is possible because there is no callback from the next frame, resulting in the task of the delay display queue, eventually makes the first screen content display is incorrect.

Delayed framing optimization ideas and suggestions

Comparison of Flutter and H5 design:

  1. DART and JS are single-threaded models that need to be sequenced and deserialized across threads;

  2. Flutter Widget is similar to H5 VDOM, there is a DIFF process.

Early Facebook In React Optimization, the Fiber Architecture is proposed: Based on the VDOM Tree’s Parent Node → Sub-node → Brothers Node → Sub-node, the VDOM Tree is converted to the Fiber data structure (chain structure), and the reconcile phase is implemented. Interrupt recovery; based on the Fiber data structure, the control section continues in the next frame.

Based on React Fiber thinking, we propose its own delayed framing optimization, not just left and right card size, further, render content disassembled as the current frame task, high-excellent delay task and low delay tasks, the upper screen priority is sequentially changed Low. Where the current frame task is the left and right white Container; the high-optovel delay task is exclusively frame, where the picture portion also uses Container placeholders; in the idle fish scene, we dismantled all DX image widget from the card, as low as low Excellent delay tasks and is set to no more than 10 in one frame consumption.

By disassembling the 1 frame display task to 4 frames, the highest UI on the high-end machine will be optimized from 18 ms to 8 ms.

Description 1: Different business scenes, high-yogle and low-probing task settings have different description 2: Slide on the low-end machine (such as Vivo Y67), the sub-frame scheme will let the user see the list whitening and content Upable process

FLUTTER-DYNAMICX Component Optimization – Principle Explanation

Edit the "Class Android Layout DSL", compile the binary DX file. The end side is downloaded, loaded, and resolved, and the WidgetNode Tree is generated. See the right figure.

After the business data issued in the background, the Widget Tree is generated by recursively traversing WidgetNode Tree, and finally appears.

Description: Flutter Dynamicx Reference Ali Group DSL Rules Realization

FLUTTER-DYNAMICX Component Optimization – Cache Optimization

I know the principle, it is easy to discover the flow in the red box in the picture: binary (template) file parsing load, data binding, Widget dynamic creation has certain overhead. To avoid repeated overhead, we have cached DXWIDGETNODE and DXWIDGET, and the blue selection code shows the Widget cache.

FLUTTER-DYNAMICX Component Optimization – Independence ISOLATE Optimization

In addition, the above logic is placed in a stand-alone ISOLATE, and the maximum amount is lowered to the lowest. After the line technology grayscale AB experiment, the average carton bad frame ratio is reduced from 2.21% to 1.79%.

FLUTTER-DYNAMICX Component Optimization – Hierarchical Optimization

FLUTTER DYNAMICX provides class Android Layout DSL, adds Decoration layers to implement each control Padding, Margin, Corner, adds the Decoration layer; to implement the DXContainerRender layer. Every layer has its own clear duty, the code level is clear. However, since the increase in 2 layers caused the Widget Tree hierarchy, the DIFF logic of 3 trees became complicated and the performance becomes low. To do this, we merge the Decoration layer and the DXContainerRender layer, see the middle Timeline diagram, which can be found that the optimized flame grading and complexity becomes low. After the line technology grayscale AB experiment, the average carton bad frame ratio is reduced from 2.11% to 1.93%.

Performance measurement and devtool extension

Tell the optimization tool, which is described here to make a measure of how to measure, and the build / extension of the tool.

Offline scene – Flutter BenchmarkWhen the FLUTTER is detected, the calculation consumption on the UI Thread and Raster Thread is required. So the Flutter optimizes before and after comparison, using the time consuming data of the UI Thread and Raster Thread of each frame.

In addition, the fluency performance value is affected by the operating gesture, the scrolling speed, so the error based on the measurement results of manual operations will have errors. Here, use the WidgetController control list control FLING.

The tool provides the interval between the scrolling speed, the number of scrolls, the scroll, and the like. After the scrolling test is completed, the data is displayed by the UI and Raster Thread frame, 50 points, 90 points, and 99-positioned frame consumption, and give performance data from a variety of dimensions.

Offline scenario – Based on the recording screen

Flutter Benchmark gives multi-dimensional measurement data at the Flutter page, but sometimes we need a horizontal comparison competition app, so we need to have a tool transverse to more different technologies. The idle fish is self-developed in the Android side to self-developed the recording screen data. Imagine the mobile phone interface into multiple screens, get the screen data (byte arrays) (byte arrays) by sending VirtualDisplay, interval 16.6 ms, using the Hash value of the byte array represents the current picture, the current 2 The Hash-read hash value is unchanged, and the Carton is considered.

In order to ensure that the fluency detecting tool app itself does not have a carton, it is read, which is compressed, and the compression ratio on the low-end machine is higher.

Through the detection of the tool without invading, a rolling test can be detected, the average FPS value (57), the frame distribution is variance (7.28), 1S time, the large number of large cards (0.306), large card cumulative time (27.919). Intermediate array display frame distribution: 371 represents the number of normal frames, 6 generations 16.62ms of small cardon quantity, 1 generation 16.63MS quantity.

Here is the definition of the big Carton: Carton, greater than 16.6 * 2 ms.

Offline Scene – Performance Detection Based on DEVTOOL

In addition, the scenes of the idle fish are also extended DevTool. In a Timeline map extended time-consuming, greater than 16.6ms red highlight, convenient development.

Online scene-Flutter high available detection FPS implementation principle

Online scene, idle fish self-developed Flutter high available. The basic principle is based on 2 events:

  • Ui.window.onbeginframe event

    • Engine notifies the VYSNC signal arrival, notify UI Thread to start preparing the next frame building

    • Trigger schedulerbinding.handlebeginframe callback

  • Ui.window.ondrawframe event

    • Engine Notification UI Thread Start Draw Next Frame

    • Trigger schedulerbinding.handledrawframe callback

Here we have recorded a frame start event before the Handlebeginframe processing, and the end of the frame is recorded after HandledrawFrame. Each frame here needs to calculate the list control offset value, and the specific code implementation is implemented. When the entire accumulated exceeds 1, executes a calculation, filtering out the scene without scrolling, calculates the FPS value using each frame.

Online Scene – FlutterBlockcanary Line Stack Stack Detection

After using Flutter high available to get the online FPS value, how to locate the stack information, you need to collect stack information. Free fish collects carton stacks using the self-developed Flutterblockcanary. The basic principle is that the signal is transmitted in the C layer, such as 5ms once, each signal receives the Dart Ui Thread stack collection, the resulting series of stacks are aggregated, and the same stacks in a row are considered to have occurred in Carton, this This stack is the stack of Carton we want.

The following figure is the stack information collected by Flutterblockcanary, and the middle framefpsRecorder.getscrolloffset is a Carton call.

Online scene – FlutterBlockcanary Detects overreservation

In addition, FlutterBlockcanary also integrates over-rendering detection capabilities. Replace the Buildowner object by replying widgetsflutterbinding, replacing the buildowner object, and rewrive the ScheduleBuildFor method to intercept Element. Based on the dirty ELEMENT node, extract the depth of the dirty node, the number of direct child nodes, the number of all child nodes.

Based on the number of all child nodes, in the idle fish details page, we are positioned to the "Quick Question View" during scrolling, and the number of transes and all child nodes are too large. View the code, positioning the view hierarchical level, by sinking the view to the leaves node, the number of stasible Build nodes is optimized from 255 to 43.

FLUTTER sliding curve optimization

The front told Tarton optimization means and measures and standards are mainly surrounded by FPS. But from the user’s physical feel, we found that Flutter also has many optimal points.

FLUTTER list slide curve and native curve

Compare the scroll curve of OFFSET / TIME, you can find that the Flutter BouncingScrollsimulation and iOS scroll curve are close, Clampingscrollsimulation and RecyClerView are close. Check the Flutter source code, it is true.

Because BouncingScrollsimulation has rebound, many pull-down refreshes and load more features are based on BOUNCINGSCROLLSIMULATION package, which causes the Flutter page sliding, physical and native Android pages inconsistent.

Flutter list performance and optimization under fast sliding

Although the Clampingscrollsimulation slides and Android RecyclerView is close, but in the quick sliding scenario, you can find that the flutter list scrolls quickly stops, and quickly slides. For the reason, you can see the moment that the sliding curve is stopped, and the speed is not a decline, and it will speed up, finally reach the end point, and stop. Based on the source code formula, the curve can be discovered that flutter clampingscrollsimulation is approximated by the Formula Fitting Method to approximate the Android RecyclerView Curve. In the case of rapid sliding, the focus of the formula curve is not 1 corresponding value, but the right image is broken, the speed will become fast.

It can be understood that the FLUTTER’s formula fit is not ideal. In the near future, there is also a PR proposed using DART to implement the RecyclerView curve.

Flutter list performance and optimization in the case of Carton

The first chapter is mentioned in the case of the same FPS, such as the FPS 55, the native list feels smooth, and the styles of the FLUTTER list are more obvious. One reason here is that the native list usually has multiple thread operations, and there is a lower probability of the big Carton; the other reason is that the same small carton’s body, FLUTTER has obvious statter, and the native list can’t feel. So why?

When we build cards, we deliberately create small Carton, compare the flutter list and RecyclerView before and after, and you can find that RecyclerView Offset does not hop, and the Flutter curve has a lot of burrs, because Flutter scrolling is based on D / T curve calculation, When a carton occurs, △ t doubles, and OFFSET also trips. It is also because of time pause and offset jump, let users know that the Flutter list is not unstoppable in small Carton.

By modifying the Y=D (T) formula, in the case of Carton, ΔT-16.6ms will ensure that the small Carton case is not hopped. In the case of Great Carton, it is not necessary to reset the ΔT to 16.6ms, because in the parking time, it has been clearly allowed to give the user to feel the carton, OFFSET does not have a trip only to make the list rolling distance short.

Performance optimization

Finally share some suggestions for performance optimization.

  1. In optimization, we should pay more attention to the user’s body, not only the performance value. The upper right map is visible, even if the FPS value is the same, but the taste occurs, the body feels clearly; the bottom of 2 game recording screens, the left side average 40 fps, the average of 30 fps, but the body feels is more smooth .

  2. Not only should I pay attention to the performance of UI Thread, but also pay attention to the overhead of Raster Thread, such as the characteristics / operation of Save Layer, but also causing Carton.

  3. In terms of tool, it is recommended to use different tools in different scenarios. It should be noted that the problem of tool detection is a stable reproduction problem or the occasion of data jitter. In addition, it is also necessary to consider the performance overhead of the tool itself, and the tool itself needs to be as low as possible.

  4. In terms of optimization ideas, we must broaden the direction. Most optimized ideas of Flutter are optimized computing tasks; and multithreading direction is not, refer to the independent ISOLATE Optimization of Flutter Dynamicx; in addition, it is difficult to digestive tasks for one frame Whether it is possible to disassemble multiple frame time, try to make a card per frame, priority to the user.

  5. Finally, I recommend paying attention to the Flutter community. The Flutter community continues to have a variety of optimization, regularly upgraded Flutter or dimensions, CHERRY-PICK optimization submission, is a good choice.

Performance analysis tool usage suggestions

Flutter tool, the first push is the official devtools tool, the Timeline and CPU Flammatic maps can help us discover problems well; in addition, Flutter also provides a wealth of Debug Flags to assist our positioning problems, familiar with each Debug switch Role, I believe that there will be no homage to our daily research and development; in addition to official tools, performance logs are also good auxiliary information, as shown in the lower right corner, the idle fish Fish-Redux component outputs the task overhead in the scroll, can It is convenient to see that at that moment.

Performance analysis tools themselves

Performance testing tools inevitably have certain overhead, but must be controlled within an acceptable range, especially on the line. A case in front sharing the FLUTTERBLOCKCANARY detection tool, discovers the framefpsRecorder.getscrolloffset time consumption, and the logic is just that Flutter is highly available to scroll offset. See the right front source code of the right picture, each frame needs to be recursively traversed to collect RenderViewPortBase, which is a small overhead. Finally, we avoid the repetition calculations during the scroll through the cache optimization.

Carton optimization suggestions

Reference official documents and excellent performance articles, precipitated a lot of routine optimization methods in the UI and GPU side, such as refreshing the minimum widget, using itemextent, recommended using Selector and Consumer, etc., avoid unnecessary DIFF computing, layout calculation, etc. Reduce SAVELAYER, replace half-transparent effects using images, alleviate the overhead of the Raster thread.

Because of the reasons, only part of the sequence, more common optimization suggestions see the official documentation.

Use the latest Flutter Engine

As mentioned earlier, the Flutter community is also active, Framework and Engine layers have an optimized PR income, which mostly can make the business layer without perception, and better optimize performance from the bottom viewing angle.

Here, there is a typical optimization scheme: existing flutter solution: When each VSYNC signal arrives, it triggers the build operation. At the end of Build, start register the next vsync callback. In the case where a carton does not occur, see Figure Normal. However, in the case of carton, see Figure Actual Results, just over 16.6ms here, because it is a registration listening to the next vsync callback, triggered the next build, for this, a large amount of time in the middle. Obviously, what we expect is, at the end, immediately execute, assuming enough to execute enough, this time the screen is still smooth.

If the team allows, it is recommended to upgrade the flutter version regularly; or maintain your own Flutter independent branch is also a good choice. From the community Cherry-Pick optimization, you can guarantee that business stability can also enjoy the community contribution. In short, I recommend you to pay attention to the community.

Summarize

In summary, the challenges, monitoring tools, optimization methods, and recommendations are shared by Flutter fluidity optimization. Performance optimization should be people-centered, develop monitoring indicators and optimization points from actual physical fitness; fluency optimization is not one, the above share is not all, there are many optimized means to pay attention: How to better multiplex Element, how to avoid Platform Thread busy leading to vsync signal lacking, etc., is a point that can be concerned. Only the continuous technical enthusiasm and conscious spirit can optimize the APP performance to the ultimate; technical teams also have access to open source communities, other teams / companies to connect, That stone stone, Can be attacked.