Exploring a new way of life in the future: comprehensive analysis and recommendation of three popular smart speakers

In modern society, the advancement of science and technology has made people pay more and more attention to the convenience and comfort of home life. Among them, smart has been enthusiastically sought after by consumers with its simple and easy operation mode and diverse functions. This article will introduce you three popular smart speakers: Xiaodu Smart Screen X10 2nd Generation, Xiaomi Smart Home Screen Pro 8 and Xiaomi Smart Home Screen 10.

The first small smart screen X10 second generation stands out with its unique design concept and technical advantages. This smart speaker uses a 10-inch high definition large screen with advanced AG paper screen technology, which can effectively reduce the harm of blue light radiation to the eyes and provide users with a healthy visual experience. At the same time, the small smart screen X10 second generation has touch operation function, making your operation simpler and more efficient. What’s more worth mentioning is that the built-in AI assistant allows you to easily complete music playback, weather inquiry and other tasks through voice commands. This product is cost-effective and highly competitive among congeneric products.

The next thing I want to recommend to you is the Xiaomi Smart Home Screen Pro 8. This smart speaker has an excellent display effect. The 8-inch large screen reaches a high resolution of 1920×1080, and the picture is clear and delicate. In terms of design style, the Xiaomi Smart Home Screen Pro 8 is dominated by simplicity and atmosphere. The body is made of high-quality aluminum alloy material, showing high-end quality. In addition, the product is equipped with a powerful quad-core processor inside, which makes it perform well in various applications, whether it is watching high definition movies or playing large-scale games. More importantly, it can be linked with other devices to help you achieve intelligent management of the whole house.

Finally, let me introduce the Xiaomi Smart Home Screen 10 to you. As the last product recommended this time, the Xiaomi Smart Home Screen 10 still continues the fine tradition of the family. It is also equipped with a large 10-inch screen with a resolution of 1920×1080, ensuring that the presented picture is rich in details and vivid. In order to better take care of the family’s work and rest habits, the Xiaomi Smart Home Screen 10 is specially equipped with a physical occlusion button. When you need a quiet environment, you can turn off the screen with just one touch, so as not to affect others’ sleep. What’s more intimate is that this product supports multiple language recognition, such as Mandarin, English and other languages commonly used in many countries and regions around the world, truly realizing global services.

All in all, the above three smart speakers have their own characteristics, focusing on design, hardware configuration and even price. I believe that as long as you make a wise choice according to your actual needs, you will be able to find the most suitable one among many excellent products. Looking forward to the above information to help you make the best decision during the purchasing process!


dcdv.zol.com.cn
True

https://dcdv.zol.com.cn/848/8487890.html
Report
2124
In modern society, the advancement of science and technology has made people pay more and more attention to the convenience and comfort of home life. Among them, smart speakers have been enthusiastically sought after by consumers due to their simple and easy operation methods and diverse functions. This article will introduce you three popular smart speakers: Xiaodu Smart Screen X10 2nd Generation, Xiaomi Smart Home Screen Pro 8 and Xiaomi Smart Home Screen…

Witness the 20th anniversary of Chery’s export. Tiggo 8 PLUS is the first car owner in the world to deliver the car.

  one0Month 1fiveDay,On the occasion of the 20th anniversary of Chery’s automobile export, a new member of the Tiggo 8 series-Tiggo 8.?PLUSOfficially listed in Yanqi Lake, Beijing. At the press conference, dozens of Tiggo 8 PLUS owners, represented by Mario Aube, First Secretary of Polish Embassy in China, were the first global owners, from Yin Tongyue, Party Secretary and Chairman of Chery Automobile Co., Ltd.Gao Xinhua, Deputy General Manager of Chery Automobile Co., Ltd. and President of Automotive Engineering Technology R&D Institute.Took the key in his hand and formally joined "T"IGGO M.A.N”Big family.

Yin Tongyue (first from left), Party Secretary and Chairman of Chery Automobile, took a group photo with Chery global car owners.

  As an independent automobile brand that "went out" earlier in China, Chery Automobilerely onTwenty years in the global marketdeep ploughing/tillage/cultureDevelopment, alreadyBecome the most popular China automobile brand in overseas markets.. As of now, Chery Automobile hasfourtimeobtainIt has to be selected by the state"Best Overseas Image Enterprise" 20Strong, andEstablished overseasfourR&D center, 10 production basesAnd more than 1500Home sales serviceNetwork point, productIt has been sold to more than 80 countries and regions, with a cumulative export of 1.65 million vehicles.,Ranked first in China brand passenger car export for 17 consecutive years..

  this year,In COVID-19.pneumoniaGlobal epidemiccommit atrocitiesUnder the background, CheryautomobileofabroadExport business,Still achievedSubstantial increase,January-Septembershare,CheryPassenger car exit69371Cars, a year-on-year increase36.4%。 Among them, withA new generation of Tiggo 8 leads.The sales volume and market share of Chery star products in Russia, Saudi Arabia, Chile, Ukraine and other countries have reached record highs.

Tiggo 8?PLUS

  As a flagship SUV based on global standards, Tiggo 8 PLUS is the latest product carrier for Chery Automobile to integrate global wisdom and core technologies, and it is also a strategic model for Chery Automobile to lay out the global market. At present, Chery Automobile has initially completed the layout of Tiggo 8 in the global market. Next, Tiggo 8?PLUS will also be in succession.The listing of Saudi Arabia, Russia, Uruguay, Ukraine, Chile and other places in the world has further helped Chery Automobile to move towards the strategic goal of "building an international brand with global competitiveness".?

In 2020, the consumption of potato staple food in China will account for 30%. When can potato steamed bread be eaten?

  Little "potato king", fire again and again. The Ministry of Agriculture recently issued "Guiding Opinions on Promoting the Development of Potato Industry", proposing that by 2020, the potato planting area will be expanded to more than 100 million mu, the proportion of varieties suitable for staple food processing will reach 30%, and staple food consumption will account for 30% of the total potato consumption.

  Therefore, as soon as this Guiding Opinion was released, it triggered a heated discussion in the society. Potatoes, originally a home-cooked dish on the dining table, are shredded potatoes with vinegar, fresh potatoes and stewed beef with potatoes … … I’m afraid we can’t count how many potatoes we have eaten these years. Many people are puzzled. Why should we advocate the development of potato staple food? Is there not enough food to eat? How to eat potatoes as a staple food? How to promote the potato industry development?

  From "non-staple food" to "staple food", why does potato "counterattack"?

  "The development of potato staple food is not to let everyone directly eat potatoes as staple food." Dai Xiaofeng, director of the Agricultural Products Processing Institute of China Academy of Agricultural Sciences, explained that the development of potato staple food is to process potatoes into staple food products such as steamed bread, noodles and rice noodles suitable for China people’s consumption habits, so as to realize the transformation from non-staple food consumption to staple food consumption, from raw material products to industrialized series of finished products, and from food and clothing consumption to nutritional and healthy consumption.

  Is it not enough to eat potatoes that are used to being eaten as vegetables as dry food?

  Zeng Yande, director of the Planting Department of the Ministry of Agriculture, said: "China’s grain has been harvested for 12 consecutive years. The implementation of potato staple food development does not mean that there is a shortage of the three major rations. However, from the perspective of supply-side structure, rations appear ‘ Three quantities increase together ’ Phenomenon, especially the pressure of corn destocking, so it is necessary to reduce the corn planting area. From the demand side structure, with the improvement of living standard and consumption level, the pursuit of nutrition and health has become a consumption trend, while the market structure of agricultural products is relatively simple. Therefore, incorporating potatoes into the staple food family will help promote the effective docking between the supply side and the demand side of agriculture. "

  In addition, promoting the development of potato staple food is also conducive to alleviating the pressure on resources and environment and realizing the sustainable development of agriculture. Potato is cold-resistant, drought-resistant, barren-resistant, and has wide adaptability, so it is easier to plant.

  So, why did you choose potatoes as the staple food?

  The history of food has proved that potato is a staple food suitable for human needs. Yu Xinrong, Vice Minister of Agriculture, said that in Europe and America, potatoes have been the staple food for hundreds of years. As far as China is concerned, potatoes have become the staple food on the table of ordinary people in parts of Shaanxi and Ningxia in the northwest and parts of Northeast China. With the development of economy, consumer demand is increasingly diversified. In order to comply with this trend, we should constantly realize the diversification of staple food and promote potato staple food throughout the country.

  The most exciting thing is the nutritional value of potatoes. Wang Xiaohu, director of the Institute of Food and Nutrition Development of the Ministry of Agriculture, said that through testing, it was found that potato staple food contains all seven kinds of nutrients needed by the human body, and also makes up for the lack of vitamin A and vitamin C in the daily staple food. The vitamin content in 100 grams of potato is equivalent to 7 apples, or one and a half tomatoes, and the potassium content is equivalent to two bananas.

  Liang Xisen, chairman of Himsen Group engaged in potato breeding and industrial development, told the reporter: "99% of the compressed biscuits eaten by the troops are all potato powder, and the food of astronauts in space is also processed from potato powder. The nutritional value of potato powder can be seen."

  Wang Xiaohu said that the experiment conducted by the project team in Inner Mongolia showed that sticking to eating steamed bread with 30% potato flour made people healthier in terms of blood sugar, blood lipid and insulin.

  When can I eat potato steamed bread?

  "I just heard on the news that potatoes are staple food, but I have never seen potato steamed bread in the supermarket. Where can I buy it?" Speaking of potato staple food, Aunt Wang, a Beijing citizen who is shopping for food in the supermarket, is very curious.

  "The nutritional value of potato whole powder is relatively high, and the general whole powder content is 20%— 30% of potato steamed bread is delicious. " Liang Xisen said that in June last year, Himsen Group began to produce potato steamed bread in factory, including one local ordinary steamed bread in 0.5 yuan and one potato steamed bread in 1 yuan. The products were in short supply and sold in large quantities to Tianjin, Jinan and other places, and the Beijing market was slowly developing.

  Not only steamed bread, but also 154 kinds of potato staple food products in six categories were displayed on the spot at the high-level seminar and achievement conference of potato industry development held by China Academy of Agricultural Sciences. In addition to popular staple foods such as steamed bread and noodles, there were instant bean paste cakes, unique chrysanthemum cakes and delicate and delicious cookies & HELIP; … The delicious taste makes the tasters full of praise.

  "Take the staple food products with potato flour accounting for 40% as an example. In the next 10 years, with the speed of 20%, the consumption capacity of traditional staple food products of potatoes can reach about 20 million tons, and the consumption capacity of leisure products can reach about 8 million tons." Wang Xiaohu said that the potato product market will be a vast "blue ocean".

  "It is imperative to accelerate the industrialization of potatoes." Yu Xinrong said that potato industrialization has made progress in stages, but to meet the huge potential market, it is necessary to start from all aspects and constantly accelerate the pace of industrialization.

  "Breeding innovation needs to be strengthened, especially the breeding of potato varieties suitable for staple food processing." Dai Xiaofeng said that the dry matter content of potato is obviously different because of different producing areas and varieties. For example, the yield per mu of some varieties in Shandong producing areas can reach 3-mdash; 4 tons, but the starch content is low and the flour yield is low; On the contrary, Gansu "Yidianhong" with high starch content has high flour yield, but the yield per mu is only 1-mdash; 1.5 tons. Experts say that how to cultivate varieties with high yield and high starch content is another key to industrial development.

  Wang Xiaohu introduced that the Academy of Agricultural Sciences has built a basic information database of 245 potato varieties and determined the potato screening system. A total of 18 varieties suitable for staple food development in 4 ecological regions were screened out to speed up the solution of this problem.

  "The processing problem needs to be solved." Dai Xiaofeng believes that the whole flour processing link faces two major problems. First, the strength of enterprises is weak and the production capacity is low. At present, the national production capacity is only 80,000 tons, and the actual operating rate is less than half. Second, the production cost is high. "In terms of cooked flour, the cost per ton of flour is 4,000 yuan, and the cost per ton of whole potato flour is 10,000 — 12 thousand yuan. How to solve the problem of high cost will be the focus in the future. "

  "The staple food products should be more abundant." Yu Xinrong said that enterprises can sensitively tap the market demand and innovate more diversified potato staple food products. It is understood that potato steamed bread has been sold in more than 600 supermarkets in Beijing, Tianjin and Hebei, but to meet the eating habits of different regions and different levels of consumer groups, enterprises need to increase the intensity of innovative products.

  Potato industrialization will not compete with the three staple foods for land.

  China’s arable land area is limited, and the constraints of resources and environment are getting tighter and tighter. Will vigorously promoting potato industrialization and expanding potato planting area form a situation of competing with the three staple foods for land and water?

  "Promoting the potato industry will not compete with the three major grains for water and land." Zeng Yande said that potato production should be expanded according to local conditions by using winter fallow fields in the south, arid and semi-arid areas in the northwest and groundwater overexploitation areas in North China, and efforts should be made to form a situation in which potatoes, rice, wheat and corn complement each other and develop in a coordinated way.

  "Increasing the potato planting area coincides with adjusting the planting structure." Zeng Yande said that at present, the corn production capacity is over-capacity. In the past 12 years, the national corn planting area has increased by more than 200 million mu, of which the "sickle bend" area accounts for nearly 40%. In the future, the potato planting area with less water demand and relatively high yield can be increased in the "sickle bend" area.

  Potato industrialization should be promoted step by step with emphasis. Yu Xinrong said that the future will be promoted according to the overall layout of "one main center and seven sub-centers". Beijing, as the main center, will become the research and development technology center of potato products, forming a number of leading product formulas and processing technologies. Promote potato development in Northeast China, East China, Central China, South China, Southwest China and Northwest China step by step, cultivate consumer groups, expand consumer markets, and develop potato products with regional characteristics according to regional consumption habits to meet consumer demand.

  The supporting policies for potato production need to be gradually implemented. Zeng Yande introduced that the relevant departments will improve the potato production support policies and implement policies such as agricultural support and protection subsidies and agricultural machinery purchase subsidies. Encourage all localities to implement land, electricity, water, gas and other price concessions for potato processing enterprises. Increase investment in potato production, support seed potato production, storage facilities construction, standardized production technology promotion, market and information services. Actively explore the credit guarantee and insurance mechanism of potato industry, guide financial institutions to expand credit support for potato staple food industry, increase credit lines and implement preferential interest rates.

  "But financial capital investment only plays a guiding role." Dai Xiaofeng said that the development of potato industry involves many links such as scientific research, production, processing, circulation and consumption, and it is a complex systematic project. Only by adhering to the combination of government guidance and market regulation, giving full play to the leading and exemplary role of enterprises, tackling key problems in the technical mode of staple food development, improving and perfecting the processing technology of staple food, and doing a good job in consumer guide, can potatoes really become the staple food on the table of the people. (Reporter Feng Hua Wang Hao)

Eating wild vegetables in spring makes up for the ancient style, and the spring is bright and fresh on the tip of your tongue.

  Text/Figure Yangcheng Evening News reporter Wang Min

  On the second day of the second lunar month, grass and vegetables are sprouting leaves, and the ancient Luoyang people designated this day as the Picking Vegetables Festival. Picking vegetables means going out to pick wild vegetables or picking vegetables in the garden. Eating wild vegetables in spring is not only a tonic, but also quite antique. At this time, you can see these seasonal wild vegetables in the markets and supermarkets in the city, but the bored urbanites in the city often like to go to suburban farms and mountains to find them themselves, that is, pick them and cook them and eat them fresh.

  "Ginseng Roots" on the roadside of Ye Qiuqian

  If you don’t look at the upper body, just look at the lower body, it can definitely imitate Laoshan ginseng, which is thick and scaly with dense fibrous roots. But the eyes moved up, and immediately the phoenix turned into a pheasant: Isn’t this a clam? Yes, it is coriander, but it is much rarer than ordinary coriander. It is only produced in Conghua, and the best is excavated in Liangkou area. This wild coriander is a mountain thing, born on the hillside, longer than the hillside, rough and rough, letting it absorb the essence of heaven and earth, rain and dew, and the sun and the moon.

  Although it looks strong, it is actually a big man in the northeast with a soft heart in the south of the Yangtze River. The smell is not as strong as that of a common clam, and it is light and delicious, not to mention astringent, but smooth and fragrant. The practice in Conghua country is to use wild parsley with spicy roots to stew pork tripe. If the taste is lighter, chicken feet can be used instead of pork tripe. According to reports, drinking this soup in spring has the effect of eliminating dampness and warming the stomach.

  It is most effective to stew soup with salted lemon. As long as there is a root in a cup of soup, it has been uncovered and moved to the next table. If you want to be fresher, you can also use it directly for cold salad. Its special flavor can often be tasted in some farmhouses in Conghua liang kou.

  Thorn head vegetables are bitter and cool, but fragrant and refreshing.

  Arrived in March, the wild vegetables in Shan Ye, Yunnan Province began to stir up. From the original sugar pear flower, broom, fish coriander and broken ear root to the present Toona sinensis, bracken, echinacea, plantain, cowpea and water celery … … When you go to Yunnan at this time, you will find these wild vegetables everywhere in the farmer’s market.

  Among them, the most unfamiliar thing for Guangzhou people is the thorn vegetable. It is the bud of a thorn tree in the mountains. Because even the tender buds have thorns, it is called "thorny vegetable". Its leaf buds are very similar to Toona sinensis. Before the bud blooms, the leaf buds are wrapped in layers of leaves, ruddy and plump, shaped like new bamboo shoots and up to five or six inches long. When the leaves split, new leaves with tender thorns will be exposed.

  Thorn head vegetables are the most common in Shangri-La, and the season is from April to July every year, among which April is the most tender and slag-free. Its growth cycle is very fast, and it can grow into the second crop in three days after picking the first crop of seedlings. However, you must pick it quickly, and you will meet the elders later, and then you will bite down and be full of slag. Locals like to eat it directly with garlic or coriander, which can keep the aroma to the maximum extent.

  In addition to cold salad, it can also be dry mixed or stewed soup, but it must use plain oil, not meat, so as not to destroy its fragrance. When used in stews, it can only be served with chicken or lean meat.

  In Guangzhou, it can only be found in Yunnan cuisine restaurant.

  Stir-fried golden buckwheat vegetables add more fragrance.

  In my memory, there are not many opportunities to eat spring buckwheat every year. About the time when the spring rains come down one after another, the family will buy a handful of spring buckwheat, carefully select it, cut it into sections, and simply fry it, and it will smell fragrant. In the listless spring, this is a refreshing dish that makes people’s forefinger move. It is clear but not scarce, tender but not raw, and it is the essence of home cooking.

  Most of the buckwheat dishes seen on the market now are Hunan buckwheat. Although they are tender to eat, they always feel that the taste of the dishes is not enough. In fact, the really beautiful buckwheat dish is the local golden buckwheat in Guangzhou, which originated in Huadu and is called Huadu Silk Buckwheat. Unlike the Hunan version, this kind of buckwheat dish is not stout, with a thin head and a young body. Although it is petite, it tastes rich and fragrant.

  However, whether it is silk buckwheat or foreign version of buckwheat, it is the most delicious near the head, and only the first and second stubble can be harvested, and then it will be old and tough, so it has to be used to make sour buckwheat heads.

  Stir-fried buckwheat vegetables, the most feared thing is that the heat is not well grasped, and it is too cooked and has residue, and it is too raw and spicy. In order to make it better, the chef of "Peninsula Haoyuan" specially came up with a "three-stage frying" way to make it. Stir-fry the buckwheat with ginger wine first, then take it out after it changes color slightly; Then pat the garlic in wok and saute, then stir-fry the buckwheat with strong fire, splash Shao wine at the same time, then stir-fry quickly, add a little salt and sugar, and drain the oil; Finally, the shrimps in the river or the wok will be fried together, which will take no more than three minutes, in order to keep the crispy taste of buckwheat to the maximum extent.

  Banlangen must be eaten to prevent colds.

  Just as there must be detoxification grass where poisonous snakes haunt, there is Banlangen to prevent colds in the spring when influenza is most likely to wreak havoc. For many people, Radix Isatidis is an ironclad herb. When you go to a restaurant to eat this, it always feels a little off-flavor, especially the raw and dregs taste of wild vegetables, which is even more uncomfortable for Guangzhou people who are awkward.

  If you want Banlangen to be slag-free, you have to choose Xishuangbanna. The stems and leaves of Radix Isatidis here are particularly green, so cool that they will ring when you bite at the entrance, even if you have cooked them with soup on the cloud legs, which is the favorite of the regular customers of "Xinguiyuan". The chef of "Gansimiduo yunnan art Restaurant" only selects tender leaves and sautes them with fire, retaining the original flavor of Radix Isatidis. The taste is bitter with some wild vegetables, but it is very heat-clearing and detoxicating.

  Rapeseed heart is slender and has no muddy taste.

  In the south of March, rape is a good time to pull out the core and blossom, so rape heart has become a very seasonal vegetable, which can’t be eaten in other seasons until it expires.

  Rapeseed hearts moistened by rain, with flowers and bones, are tempting you. Even in Guangzhou markets, they are only four or five yuan each, which is not cheap, but definitely not expensive. Buy one or two, wash them, fry them or bake them, depending on your preference. Vegetable farmers should be careful when choosing rapeseed hearts, and don’t choose those that are too tall; The weather in the south is warm and humid now, and the cabbage is different every day, so don’t bloom.

  The flowering Chinese cabbage in other places is sweet after frosting, and it will be slightly bitter in spring. However, the flowering Chinese cabbage is just in season in March, which is even later than the flowering Chinese cabbage. Compared with the local cabbage, the "starting rate" of rapeseed is very high, so you don’t have to waste too much when choosing vegetables. Its stalk is about 1/3 thinner than that of ordinary Chinese cabbage, with full flavor and moderate hardness.

  When frying rapeseed hearts, you must wait until the wok emits white smoke before you can stir-fry them urgently. Then, the rapeseed heart is wok, and then the material head and lard are stir-fried, so that the rapeseed heart fried twice can be green, crispy and not soft and oily.

120 million! Athletes’ income list: Messi beats Cristiano Ronaldo, which is the only one in the list, with a total score of 20.

Football is the most popular sport in the world, and the income of famous stars is also the top level in the world. Cristiano Ronaldo’s sky-high annual salary of $200 million now also shows the popularity of football, and this popularity is worldwide, so it is easier to increase income. Of course, not every player can enjoy the high salary. Playing football is also a profession, and the income level will be distinguished according to the ability. Therefore, the low-income people in football occupy a large proportion, so the gap between the rich and the poor of athletes is still very large.

Recently, Sportico, a sports business media, published a set of information. In 2022, the top 100 athletes in the world earned the highest income. Among them, football, as the most popular sport, occupied 12 places in the top 100, and basketball, one of the three big balls, also occupied a large proportion.

Among the top 10 sports athletes, there are 3 football players, all of whom are in the top 5. Messi’s salary of $72 million plus business endorsement of $50 million, with a total income of $122 million, ranks second. Cristiano Ronaldo, who has not yet moved to a local Saudi team, ranks third with a total income of $115 million. In 2023, Cristiano Ronaldo’s annual salary will reach $200 million, and his total income will rise sharply.

Neymar ranks fourth with a revenue of $103 million, and the top four football players occupy three seats, which proves that football stars have higher commercial value and football is more popular. Other top 100 footballers included Mbappé (US$ 254.88 million), Bell (US$ 304.33 million), Azar (US$ 413.79 million), Iniesta (US$ 533.50 million), Salah (US$ 573.42 million) and Levan (US$ 633.00 million).

In 2022, the American basketball player James ranked first in terms of athletes’ income. Although his annual salary was only $36.9 million, only half of that of Messi last year, his commercial contracts were as high as $90 million, and the commercial contracts were generally more and more, so James’ income was also increasing, making him a unique player in the world sports world.

Messi and Cristiano Ronaldo’s income is also unique in football. Even at the age of 38 or 36, they are still the most attractive players in football. Mbappé, of course, because of his age advantage, has the meaning of catching up with others. The total annual salary of Mbappé’s contract can reach 200 million, but it includes signing fee, loyalty bonus and so on, so it is not included in the list. However, if Mbappé wants to achieve the success of Messi and Cristiano Ronaldo, it still needs to maintain a long-term and stable state. Of course, Messi is a well-deserved king, both in honor and income, especially after winning the FIFA World Cup Qatar 2022 championship.

The neural network model inspired by biology greatly improves its memory ability.

Inspired by recent biological discoveries, researchers have developed a new model that shows enhanced memory performance. This is achieved by modifying a classic neural network. Computer models play a key role in studying the process of making and retaining memories and other complex information in the brain. However, building this model is a delicate task.

The intricate interaction between electrical and biochemical signals and the connection network between neurons and other cell types create the basic structure for the formation of memory. Nevertheless, due to the limited understanding of the basic biology of the brain, it has proved to be a difficult task to code the complex biology of the brain into a computer model for further study.

Researchers at Okinawa Institute of Science and Technology (OIST) improved the widely used memory computer model (called Hopfield Network) by incorporating biological insights. This change has inspired a neural network, which not only better reflects the connection between neurons and other cells in the brain, but also has the ability to store more memories.

Thomas Burns, a doctoral student in the group of Professor Zhishu Shenjing, who is the head of OIST’s neurocoding and brain computing department, said that the increased complexity in the network makes it more realistic.

"Why is there so much complexity in biology? Memory may be one reason, "Mr. Burns said.

In the classical Hopfield network (left), each neuron (I, J, K, L) is connected with other neurons in pairs. In the improved network made by Burns and Professor Shenjing, three or more groups of neurons can be connected at the same time. Source: Thomas Burns (OIST)

Hopfield network stores memory as a weighted connection pattern between different neurons in the system. The network is "trained" to encode these patterns, and then researchers can test its memory of these patterns by presenting a series of vague or incomplete patterns to see if the network can recognize them as patterns it already knows. However, in the classical Hopfield network, the neurons in the model are connected with other neurons in the network to form a series of so-called "paired" connections.

Paired connections represent the connection between two neurons at the synapse, which is the connection point between two neurons in the brain. But in reality, neurons have complex branching structures called dendrites, which provide multiple connection points, so the brain relies on more complex synaptic arrangements to complete its cognitive work. In addition, the connections between neurons are regulated by other cell types called astrocytes.

Burns explained: "There are only paired connections between neurons in the brain, which is simply unrealistic. He created an improved Hopfield network, in which not only pairs of neurons, but also three, four or more groups of neurons can be connected, such as astrocytes and dendritic trees in the brain. "

Although the new network allows these so-called "collective" connections, on the whole, it contains the same number of connections as before. The researchers found that a hybrid network with paired connections and collective connections performed best and retained the most memory. They estimate that its effect is more than twice that of the traditional Hopfield network.

It turns out that you actually need to balance the combination of various features to some extent, Burns said. A single synapse is necessary, but you should also need some dendritic trees and some astrocytes.

Hopfield networks are very important for simulating brain processes, but they also have powerful other uses. For example, a very similar network type called Transformers is a language tool based on artificial intelligence, such as ChatGPT, so the improvements identified by Burns and Professor Shenjing may also make such tools more powerful.

Burns and his colleagues plan to continue to study their modified Hopfield networks to make them more powerful. For example, in the brain, the connection strength between neurons is usually different in two directions, so researchers want to know whether this asymmetric feature can also improve the performance of the network. In addition, he also wants to explore ways to make the memories of the network interact, just as they do in the human brain. Our memory is multifaceted and huge. We still have a lot to discover. "

Messi assists Mbappé to beat brest 2-1 away.

Messi assists Mbappé in the lore.

In the early morning of March 12th, Beijing time, brest played at home in the 27th round of Ligue 1 against Paris Saint-Germain. As there are probably four relegation teams in Ligue 1 this season, brest ranks 15th, but only one point ahead of the relegation zone. In terms of total value, the Paris team is as high as 890 million, while brest is only 80 million.

In the 37th minute of the game, Messi instigated the attack, and Mbappé shot hard and was saved, but the ball was not far away, and Sohler made up the shot to break the goal.

In the 44th minute, brest got the chance through a simple long pass, and Hornot faced the defense of the two men and shot from a small angle to equalize the score.

In the 90th minute, Messi sent a wonderful assist, Mbappé passed the goalkeeper and finished the lore. Messi completed the milestone of 300 assists and Mbappé scored 2000 goals.

In the end, Paris beat brest 2-1 away, got rid of the depression of the Champions League and ushered in a four-game winning streak.

At 22: 30 pm on March 11th, Bayern beat augsburg 5-3 in the 24th round of the Bundesliga.

In the second minute, Berisha turned and shot low, hitting the ball into the lower right corner of the goal. Sommer couldn’t save it, and Bayern scored 0-1.

In the 16th minute, Sane divided the ball to the right in front of the penalty area. Cancelo caught the ball and entered the penalty area. He swung past the defender’s right foot and volleyed at a small angle. Bayern equalized the score 1-1.

In the 19th minute, Manet passed the ball with a barb on the right side of the penalty area, and pawar shot the ball in front of the door. Bayern overtook augsburg 2-1.

In the 35th minute, Bayern’s right corner kicked into the penalty area, and Delicht grabbed the header in the middle, and the goalkeeper flew to save the ball. pawar’s right foot volley in front of the door scored twice, and Bayern scored 3-1 augsburg.

In the 45th minute, Manet volleyed his left foot from the restricted area and was saved. Sanet headed into the empty net in front of the door, and Bayern led augsburg 4-1.

In the 55th minute, Berisha took the penalty. He tricked Sommer into hitting the right side of the goal and scored twice. augsburg was 2-4 behind Bayern.

In the 74th minute, Bayern made a reactionary fast break after stealing in the frontcourt. Cancelo passed the back point on the right side of the penalty area, Alfonso Davidson volleyed the goal, and Bayern led augsburg 5-2.

In the 93rd minute, Vargas made a high-speed dash with the ball on the left, and came to the front of the bottom line on the left side of the penalty area. cardona followed him and scored a goal. augsburg scored 3-5 Bayern.

Bayern started: 27- Sommer, 2- Yu Pamekano, 4- Driget (83′ 23-Blind), 5- pawar, 19- Alfonso-Davies (77′ 40- Mazravi), 22- Cancelo, 6- kimmich, 7- Gnabry (71′ 25-Muller).

Augsburg starting: 1- Ji Chivici, 2- Gumny (46′ 22-Yago), 6- Gouweleeuw, 23- Bauer, 3- pedersen, 27- engers (46′ 13- Rexbeke), 14- Baumgartlinger, 10-A- Mayer (77′ 34

The city’s fresh technology shares WiFi, which is a new choice for intelligent and convenient service in stores.

Founded in 2018, Wuhan Xianshi Technology Co., Ltd. is a technology-driven company. Its business segments include shared charging treasure, shared charging pile, unmanned container, life service, aggregate payment business, cloud computing and other industrial fields. With independent development capability, strong technical team, customer service team and rich experience in operation and promotion management, we are committed to the research and development of Internet technology and artificial intelligence equipment.

The city’s fresh technology sharing WiFi pays more attention to landing operation, which means that your customers are the end customers. All you have to do is push the ground, invite the merchants to settle in, and open the Wi-Fi code for the merchants (replace the Wi-Fi in the store). Paste the Wi-Fi code corresponding to the merchant according to the number of tables in the merchant’s store.

The business entry system is also divided into shares, which is quite attractive to developers or platform operators. Entering this area is completed by developers, because developers promote business entry with a share of profits.

For the platform operator, as long as the customers in the store scan the code to link WiFi successfully, you will get a profit, and this part of the profit is calculated automatically. Your profit is settled by Tencent’s traffic, and the following will form the effect of automatic operation. When others connect WiFi, you will get a profit, and the system operator will just enjoy the profit.

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.