A data processing method, device, apparatus, and computer-readable storage medium

CN122816735APending Publication Date: 2026-09-25TENCENT TECH SHANGHAI
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510353745.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-24
Publication Date
2026-09-25

AI Technical Summary

Technical Problem

[0003]在现有的图形渲染技术中,在每次确定业务应用的待渲染的资源数据(例如纹理数据、几何数据等)时,计算机设备需要实时计算待渲染的资源数据的资源标识符,该过程不仅消耗计算资源,在高帧率要求的业务场景(例如游戏场景)中,频繁的标识符计算还会降低业务响应速度,进而降低业务应用输出的业务内容(例如视频或游戏)的展示效果

Benefits of technology

[0060]上述可知,本申请实施例在资源数据的开发阶段就确定该资源数据的资源标识符,并将资源数据以及其对应的资源标识符关联存储于业务服务器,故在该资源数据为业务应用的待渲染的资源数据时,可以直接获取并使用提前计算的资源标识符,故可以降低该资源数据对应的渲染过程的实时计算资源,进而可以提高业务应用的业务响应速度,保障业务应用输出的业务内容的展示效果。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122816735A_ABST
    Figure CN122816735A_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a data processing method, device and equipment, and a computer readable storage medium. The method comprises: obtaining a first resource identifier associated with first to-be-rendered resource data in system memory; the first resource identifier is determined by a development device for the first to-be-rendered resource data when the first to-be-rendered resource data is created; the development device is used to store the first resource identifier in association with the first to-be-rendered resource data on a disk of a business server; obtaining a first resource identifier list in the system memory; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into a graphics card memory; if the first resource identifier is found in the first resource identifier list, the first to-be-rendered resource data in the graphics card memory is rendered. By using the present application, not only the real-time computing resources of the resource data rendering process can be reduced, but also the business response speed of the business application can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of Internet technology, and in particular to a data processing method, apparatus, device, and computer-readable storage medium. Background Technology

[0002] A graphics card is an indispensable part of a computer device. Its main responsibility is to render the data processed by the Central Processing Unit (CPU) into images and then transmit them to the monitor. Graphics card memory (VRAM) is like the "RAM" of the graphics card, storing and managing the data required by the graphics processor when rendering graphics. The graphics processing unit (GPU) is the "brain" of the graphics card, responsible for processing and calculating image data.

[0003] In existing graphics rendering technologies, when determining the resource data to be rendered (such as texture data, geometric data, etc.) for a business application, the computer device needs to calculate the resource identifier of the resource data to be rendered in real time. This process not only consumes computing resources, but in business scenarios with high frame rate requirements (such as game scenarios), frequent identifier calculations will also reduce the business response speed, thereby reducing the display effect of the business content (such as video or game) output by the business application. Summary of the Invention

[0004] This application provides a data processing method, apparatus, device, and computer-readable storage medium, which can not only reduce the real-time computing resources required for resource data rendering, but also improve the business response speed of business applications.

[0005] One embodiment of this application provides a data processing method, which is executed by a computer device and includes:

[0006] When determining the first resource data to be rendered for a business application, a first resource identifier associated with the first resource data to be rendered is obtained from the system memory. The first resource identifier is determined by the development device corresponding to the business application when creating the first resource data to be rendered. The development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0007] Retrieve the first resource identifier list for the graphics card memory from the system memory, and search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory;

[0008] If the first resource identifier is found in the first resource identifier list, then the first resource data to be rendered in the graphics card memory is rendered.

[0009] One embodiment of this application provides a data processing apparatus that operates on a computer device, the apparatus comprising:

[0010] The acquisition module is used to acquire a first resource identifier associated with the first resource data to be rendered in the system memory when the first resource data to be rendered in the business application is determined. The first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when the first resource data to be rendered is created. The development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0011] The lookup module is used to retrieve a list of first resource identifiers for the graphics card memory from the system memory, and search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory;

[0012] The rendering module is used to render the first resource data to be rendered in the graphics card memory if the first resource identifier is found in the first resource identifier list.

[0013] In one possible implementation, the data processing apparatus further includes a determining module, which is configured to perform the following operations:

[0014] When the running status of a business application meets the resource preloading conditions, the preloaded resource data is determined based on the running status.

[0015] The preloaded resource data is loaded into the graphics card memory; the preloaded resource data loaded into the graphics card memory is used for rendering processing when it is determined that the preloaded resource data is the second resource data to be rendered for the business application; the timestamp at which the preloaded resource data is determined to be the second resource data to be rendered is later than the timestamp at which the preloaded resource data is loaded into the graphics card memory;

[0016] The second resource identifier corresponding to the preloaded resource data is added to the first resource identifier list to obtain the second resource identifier list; the second resource identifier is determined by the development device for the second resource data to be rendered when creating the second resource data to be rendered; the development device is used to associate the second resource identifier with the second resource data to be rendered and store it on the disk of the business server.

[0017] In one possible implementation, the module is also used to perform the following operations:

[0018] If the running status of the business application is updated from the stopped running status to the started running status at the first timestamp, then the started running status is determined to meet the resource preloading conditions.

[0019] The module then determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0020] Based on the startup and running status, the usage counts of all resources within the historical time period are calculated; the second timestamp of the historical time period is earlier than the first timestamp; the second timestamp refers to the latest timestamp of the historical time period.

[0021] Sort the usage counts of all resource data from largest to smallest to obtain the sorted usage counts;

[0022] Get the usage counts of the first 'a' items from the sorted usage counts; where 'a' is a positive integer.

[0023] The resource data with the first 'a' usage counts in the full resource data are identified as preloaded resource data.

[0024] In one possible implementation, the determining module identifies the resource data corresponding to the top 'a' usage counts from the full resource data as preloaded resource data, which is then used to perform the following operations:

[0025] The resource data with the top a usage counts in the full resource data are identified as a candidate resource data; the a candidate resource data includes the first candidate resource data; the first candidate resource data is any one of the a candidate resource data.

[0026] Retrieve the third resource identifier associated with the first candidate resource data from the system memory;

[0027] Search for the third resource identifier in the first resource identifier list. If the third resource identifier is found in the first resource identifier list, delete the first candidate resource data from the a candidate resource data.

[0028] The 'a' candidate resource data that have had their first candidate resource data deleted are identified as preloaded resource data.

[0029] In one possible implementation, the determining module will delete a candidate resource data points from the first candidate resource data and determine them as preloaded resource data, for use in performing the following operations:

[0030] Find the maximum number of uses among b usage counts; b usage counts include the usage counts after sorting, excluding the usage counts that are ranked in the top a.

[0031] The resource data with the highest number of uses in the full resource data is identified as the second candidate resource data;

[0032] If the first resource identifier list does not contain the fourth resource identifier corresponding to the second candidate resource data, then the second candidate resource data and the a candidate resource data that have had the first candidate resource data deleted are determined as preloaded resource data.

[0033] In one possible implementation, the data processing apparatus further includes a determining module, which is configured to perform the following operations:

[0034] If the business application responds to the switching operation for the first business scenario, it is determined that the running state of the business application meets the resource preloading conditions; the switching operation for the first business scenario is used to indicate that the running state of the business application is switched from the first business scenario to the second business scenario.

[0035] The module then determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0036] Resource data related to the second business scenario from the full resource data is identified as preloaded resource data.

[0037] In one possible implementation, the module is also used to perform the following operations:

[0038] If the business application is in the content output state, then the content output state is determined to meet the resource preloading conditions.

[0039] The module then determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0040] Based on the first business content output by the business application in the content output state, the first business content is identified and processed to predict the second business content to update the first business content.

[0041] The resource data used to generate the second business content from the full resource data is identified as preloaded resource data.

[0042] In one possible implementation, the acquisition module retrieves a first resource identifier stored in system memory that is associated with the first resource data to be rendered, and uses it to perform the following operations:

[0043] Search for the first resource data to be rendered in the system memory. If the first resource data to be rendered is found in the system memory, then obtain the first resource identifier associated with the first resource data to be rendered from the system memory.

[0044] If the first resource data to be rendered is not found in the system memory, the first resource data to be rendered and the first resource identifier in the device disk are loaded into the system memory, and the first resource identifier corresponding to the first resource data to be rendered is obtained in the system memory.

[0045] In one possible implementation, the data processing apparatus further includes a determining module, which is configured to perform the following operations:

[0046] When the first resource identifier is found in the list of first resource identifiers, it is determined that the graphics card memory stores the first resource data to be rendered.

[0047] Among them, the first resource data to be rendered stored in the graphics card memory is the resource data determined by the preloading function; the resource data determined by the preloading function belongs to the full resource data contained in the device disk;

[0048] Alternatively, the first resource data to be rendered stored in the graphics card memory may be resource data that is repeatedly rendered.

[0049] In one possible implementation, the rendering module processes the first resource data to be rendered in the graphics card memory to perform the following operations:

[0050] Based on the first resource data to be rendered, obtain the rendering instructions and transmit the rendering instructions to the graphics processor;

[0051] In the graphics processor, the first resource data to be rendered is read from the graphics card memory according to the rendering instructions;

[0052] The first resource data to be rendered is input into the rendering pipeline, the rendering pipeline is executed, the first resource data to be rendered is rendered, and the rendering result is obtained.

[0053] In one possible implementation, the rendering module is also used to perform the following operations:

[0054] If the first resource identifier is not included in the list of first resource identifiers, then the first resource data to be rendered in the system memory will be loaded into the graphics card memory.

[0055] When the first resource data to be rendered is successfully loaded into the graphics card memory, the first resource identifier is added to the first resource identifier list to obtain the third resource identifier list. The third resource identifier list is used to indicate that the third resource data to be rendered, which is the same as the first resource identifier, has been loaded into the graphics card memory when it is determined that the fifth resource identifier corresponding to the third resource data to be rendered of the business application is the same as the first resource identifier.

[0056] This application provides a computer device, including: a processor, a memory, and a network interface;

[0057] The processor is connected to the memory and the network interface, wherein the network interface is used to provide data communication functions, the memory is used to store computer programs, and the processor is used to call the computer programs so that the computer device executes the methods in the embodiments of this application.

[0058] One aspect of this application provides a computer-readable storage medium storing a computer program adapted for loading by a processor and executing the methods described in this application.

[0059] One aspect of this application provides a computer program product, which includes a computer program stored in a computer-readable storage medium; a processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the method described in this application.

[0060] As can be seen from the above, in the development stage of the resource data, the resource identifier of the resource data is determined, and the resource data and its corresponding resource identifier are associated and stored in the business server. Therefore, when the resource data is the resource data to be rendered in the business application, the pre-calculated resource identifier can be directly obtained and used, which can reduce the real-time computing resources of the rendering process corresponding to the resource data, thereby improving the business response speed of the business application and ensuring the display effect of the business content output by the business application. Attached Figure Description

[0061] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0062] Figure 1 This is a schematic diagram of a system architecture provided in an embodiment of this application;

[0063] Figure 2 This is a schematic diagram of a cloud application system provided in an embodiment of this application;

[0064] Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 1 ;

[0065] Figure 4 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 1 ;

[0066] Figure 5 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 2 ;

[0067] Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 2 ;

[0068] Figure 7 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 3 ;

[0069] Figure 8 This is a schematic diagram illustrating a function triggering timing provided in an embodiment of this application;

[0070] Figure 9 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0071] Figure 10 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. Detailed Implementation

[0072] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0073] Please see Figure 1 , Figure 1 This is a schematic diagram of a system architecture provided in an embodiment of this application. For example... Figure 1 As shown, the system may include a development device 300, a business server 100, and a terminal device cluster; the terminal device cluster may include: terminal device 200a, terminal device 200b, terminal device 200c, ..., terminal device 200n. It is understood that the above system may include one or more terminal devices. This application does not limit the number of terminal devices, and it may also include one or more development devices 300 and one or more business servers 100. This embodiment of the application does not limit the number of development devices 300 and business servers 100 respectively.

[0074] The terminal devices in the cluster can have communication connections with each other. For example, terminal device 200a can communicate with terminal device 200b, and terminal device 200a can communicate with terminal device 200c. Simultaneously, any terminal device in the cluster can communicate with the service server 100, for example, terminal device 200a can communicate with the service server 100. The service server 100 can also communicate with the development device 300. The communication connections are not limited to any particular method; they can be established directly or indirectly via wired communication, wireless communication, or other methods. This application does not impose any restrictions on these methods.

[0075] It should be understood that, such as Figure 1 Each terminal device in the terminal device cluster shown can have a service application installed. When this service application runs on each terminal device, it can interact with the aforementioned applications. Figure 1 The business server 100 shown interacts with the data, i.e., the communication connection described above. The business application can be a video application, social application, live streaming application, payment application, game application, shopping application, novel application, browser, or other application that displays business content; this application does not impose any restrictions here. The business application can be a standalone client or an embedded sub-client integrated into a client (e.g., a video client); this is not limited here.

[0076] Taking a game application as an example, the business server 100 can be a collection of multiple servers, including the backend server and data processing server corresponding to the game application. The business server 100 can provide computing support for the game application. Therefore, each terminal device can transmit data with the business server 100 through the user client corresponding to the game application. For example, each terminal device can upload user operation instructions to the business server 100 through the user client of the game application. Then, the business server 100 can execute the game logic according to the user operation instructions, determine the resource data that the game application needs to render, render the resource data in the graphics processor, obtain the rendering result, encode the rendering result to obtain the audio and video bitstream, and return the audio and video bitstream to the user client of the terminal device. The terminal device decodes the audio and video bitstream to obtain the audio and video data of the game application (i.e., the rendering result), and displays the audio and video data in the game application.

[0077] Development equipment 300 refers to equipment for developing and researching business applications, which may include at least one of a development terminal or a development server.

[0078] It is understood that in the specific implementation of this application, user information (such as resource data) and other related data are involved. When the embodiments in this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the region.

[0079] For ease of subsequent understanding and explanation, the embodiments of this application may be... Figure 1 Select one terminal device example from the terminal device cluster shown, for example, terminal device 200a. When input event data is obtained in the business application, such as input event data generated through touch screen, keyboard and mouse, virtual joystick, etc., terminal device 200a can encapsulate the obtained input event data into an input event data stream and send the input event data stream to business server 100.

[0080] The business server 100 decapsulates the input event data stream to obtain input event data, updates the business logic based on the input event data, and determines the first resource data to be rendered for the business application. In this embodiment, the resource data to be rendered is referred to as the resource data to be rendered. The resource data includes, but is not limited to, at least one of texture data and geometric data, and refers to data that does not dynamically change according to logic or algorithms after its creation.

[0081] The central processing unit (CPU) of the business server 100 retrieves a first resource identifier associated with the first resource data to be rendered from the system memory of the business server. When the development device 300 creates a resource data (e.g., texture data), a certain calculation method (e.g., a hash algorithm) can be used to calculate a unique resource identifier for that resource data, that is, there is a one-to-one correspondence between a resource data and the resource identifier generated based on it. This application embodiment does not limit the method for determining the resource identifier, and can be set according to the actual application scenario.

[0082] In this embodiment, when the development device 300 creates resource data, it can pre-calculate the resource identifier of the resource data and transmit the resource identifier along with the resource data to the business server 100. The business server 100 stores the resource data and its corresponding resource identifier on the disk. Therefore, when the resource data needs to be rendered, the business server 100 does not need to calculate the resource identifier of the resource data to be rendered (e.g., the first resource data to be rendered) in real time. It can directly obtain the first resource identifier corresponding to the first resource data to be rendered from the disk, or obtain the first resource identifier from the system memory that contains the first resource data to be rendered.

[0083] The central processing unit (CPU) of the business server 100 retrieves a list of first resource identifiers for the graphics card memory from the system memory. The resource data corresponding to the resource identifiers in the first resource identifier list has already been loaded into the graphics card memory. The CPU of the business server searches for the first resource identifier in the first resource identifier list. If the first resource identifier is found in the first resource identifier list, it can be determined that the graphics card memory has already loaded the resource data to be rendered (i.e., the first resource data to be rendered). Therefore, there is no need to repeatedly load the first resource data to be rendered into the graphics card memory. The graphics processing unit (GPU) can perform rendering processing on the first resource data to be rendered in the graphics card memory to obtain the rendered image.

[0084] The business server 100 encodes the rendered image to obtain a video stream, which is then transmitted to the terminal device 200a via the network. The terminal device 200a decodes the video stream to obtain a rendered image, which is then output in the business application.

[0085] Optionally, if the terminal device 200a has disk-associated storage containing the first resource data to be rendered and the first resource identifier, and the terminal device 200a has computing capabilities, then when the business application obtains input event data, the business logic of the business application is updated according to the input event data to determine the first resource data to be rendered. It is understood that the subsequent data processing is the same as the corresponding processing of the business server 100; therefore, please refer to the above description for the specific implementation process, which will not be repeated here. The first resource data to be rendered and the first resource identifier stored in the terminal device 200a are sent by the business server 100.

[0086] The solutions provided in this application are applicable not only to physical servers and terminal devices, but also to cloud computing and cloud applications in the field of cloud technology. For ease of understanding and description, the following basic concepts will be explained first.

[0087] Cloud computing is a computing model that distributes computing tasks across a resource pool composed of numerous computers, enabling various application systems to access computing power, storage space, and information services as needed. The network providing these resources is called the "cloud." From the user's perspective, resources in the "cloud" are infinitely scalable, readily available, and can be used on demand, scaled as needed, and paid for based on usage. As the foundational providers of cloud computing capabilities, they establish cloud resource pools (or cloud platforms, generally referred to as IaaS (Infrastructure as a Service) platforms), deploying various types of virtual resources within these pools for external customers to choose from. The cloud resource pool primarily includes: computing devices (virtualized machines containing operating systems), storage devices, and network devices.

[0088] Cloud applications, a subset of cloud computing, represent the application layer of cloud computing technology. Their working principle transforms the traditional method of local software installation and computation into an on-demand service. They connect to and control remote server clusters via the internet or local area network to complete business logic or computational tasks. The advantages of cloud applications are that their applications (such as cloud application clients) run on the server side (i.e., the cloud server). The server side (i.e., the cloud server) performs the cloud application's computational work, such as data rendering, and then transmits the computational results to the user client on the terminal device for display. The user client can collect user operation information (also known as cloud application object operation data or cloud application input event data) and transmit this information to the cloud application client on the server side (i.e., the cloud server), enabling the server side (i.e., the cloud server) to control the cloud application.

[0089] Please see also Figure 2 , Figure 2 This is a schematic diagram of a cloud application system provided in an embodiment of this application. For example... Figure 2 As shown, the cloud application clients involved in the embodiments of this application are all cloud application instances running on the server side (i.e., cloud server). Figure 2 The example cloud server deploys multiple operating system containers, namely the first operating system container, the second operating system container, ..., the nth operating system container. Deploy the business application image (e.g., a game application image) to the cloud server and start the corresponding operating system; for example, deploy the cloud game 1 image to... Figure 2 In the example, when user client 1, which corresponds to cloud game 1, initiates a connection request, the cloud server can allocate the first operating system container to user client 1. Therefore, the cloud application client corresponding to cloud game 1 in the first operating system container can establish a connection with user client 1.

[0090] Similarly, when user client 2, corresponding to cloud game 1 (or another cloud application different from cloud game 1), initiates a connection request, the cloud server can allocate a second operating system container to user client 2. Therefore, the cloud application client corresponding to cloud game 1 in the second operating system container can establish a connection with user client 2. When user client n, corresponding to cloud game 1, initiates a connection request, the cloud server can allocate an nth operating system container to user client n. Therefore, the cloud application client corresponding to cloud game 1 in the nth operating system container can establish a connection with user client n.

[0091] Combination Figure 1 as well as Figure 2 , Figure 2 Cloud servers in the middle can be used as Figure 1 Business server 100 in the middle, Figure 2 The example cloud application's user client 1 can run on Figure 1 The terminal device 200a and the user client 2 of the cloud application can run on Figure 1 The terminal device 200b and the user client n of the cloud application can run on... Figure 1 The terminal device in the middle is 200n.

[0092] Containers are a type of operating system virtualization. Through isolation mechanisms (e.g., namespaces), multiple operating systems share the same kernel in kernel mode, while remaining independent in user mode. By deploying multiple operating system containers on a cloud server, the powerful computing and graphics processing capabilities of the cloud server can be effectively utilized to support high-concurrency business operations. This application does not limit the type of operating system; it can be set according to the actual application scenario. Figure 2 The operating system types corresponding to the first operating system container, the second operating system container, ..., the nth operating system container in the example can be the same or different.

[0093] In this embodiment, the user client can refer to a client that can be installed on a terminal device and provide users with corresponding cloud application experience services. Simply put, the user client can be used to output the cloud application display page of the corresponding cloud application client, and can also be called a cloud application user client, which will not be explained further below. Cloud applications can include cloud gaming, cloud education, cloud conferencing, cloud calling, and cloud social networking, etc. Among them, cloud gaming, as a typical cloud application, has received more and more attention in recent years.

[0094] Cloud gaming, also known as gaming on demand, is an online gaming technology based on cloud computing. It enables thin clients with relatively limited graphics processing and data processing capabilities to run high-quality games. In cloud gaming scenarios, the game itself is not on the user's gaming terminal; only the user client runs on the terminal. The actual game application (the cloud gaming client) runs on the server (i.e., the cloud server). The server renders the game scene into audio and video streams and transmits these streams to the user client on the gaming terminal for display.

[0095] Game terminals do not need powerful graphics processing and data handling capabilities; they only need basic streaming media playback capabilities and the ability to acquire user input event data and send it to the cloud gaming client. When users experience cloud gaming, they are essentially manipulating the audio and video streams of the cloud game. This can be done by generating input event data (or object operation data, or user operation commands) through touchscreens, keyboards, mice, joysticks, etc., and then transmitting it over the network to the cloud gaming client on the server (i.e., the cloud server) to achieve the purpose of operating the cloud game.

[0096] In this application, the game terminal can refer to the terminal device used by the player when experiencing cloud gaming, that is, a terminal device with a user client installed corresponding to the cloud gaming client, such as... Figure 1 Example terminal devices 200a and 200b; the player here can refer to a user experiencing cloud gaming or requesting to experience cloud gaming; the audio and video streams can include audio streams and video streams generated by the cloud gaming client. The audio stream can include continuous audio data generated by the cloud gaming client during operation, and the video stream can include image data (such as game screens) rendered during cloud gaming operation. It should be understood that, in this embodiment, the rendered image data (such as game screens) can be collectively referred to as rendered images. If a video stream can be considered as a video sequence composed of a series of image data (such as game screens) rendered by the cloud server, then the rendered images can also be considered as video frames in the video stream.

[0097] During the operation of cloud applications (e.g., cloud gaming), communication connections are involved between cloud application clients on the server side (i.e., cloud servers) and terminal devices (e.g., game terminals). Specifically, this can be a communication connection between the cloud application client and the user client on the terminal device. After a successful communication connection is established between the cloud application client and the terminal device, cloud application data streams can be transmitted between them. For example, cloud application data streams may include video streams (including a series of image data generated by the cloud application client during the operation of cloud gaming) and audio streams (including audio data generated by the cloud application client during the operation of cloud gaming; for ease of understanding, the audio data and the aforementioned image data can be collectively referred to as audio and video data). In this case, the cloud application client can transmit the video streams and audio streams to the terminal device. Alternatively, cloud application data streams may include object operation data for the cloud application obtained by the terminal device. In this case, the terminal device can transmit the object operation data to the cloud application client running on the server side (i.e., cloud server).

[0098] In summary, the data processing method provided in this application can be used by... Figure 1It can be executed by any terminal device in the terminal device cluster, or by... Figure 1 The business server in the middle can also be executed by Figure 1 The terminal devices and business servers in the terminal device cluster work together to execute the data processing method. The devices used to execute the data processing method in this application can be collectively referred to as computer devices.

[0099] Among them, the business server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud databases, cloud services, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms.

[0100] Figure 1 The terminal devices shown include, but are not limited to, mobile phones, computers, smart voice interaction devices, smart home appliances, vehicle terminals, and aircraft. The terminal devices and the business server can be connected directly or indirectly via wired or wireless means, and this application embodiment does not impose any limitations on this.

[0101] Further, please see Figure 3 , Figure 3 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 1 This data processing method can be performed by a business server (e.g., the one mentioned above). Figure 1 The business server 100 shown can execute the service, or it can be executed by a terminal device (e.g., the one described above). Figure 1 The terminal device 200a) shown can execute the method, but it can also be executed interactively by the business server and the terminal device. For ease of understanding, this embodiment uses the execution by the business server as an example, where the business server acts as a computer device to execute the data processing method. Figure 3 As shown, the data processing method may include at least the following steps S101-S103.

[0102] Step S101: When determining the first resource data to be rendered for the business application, obtain the first resource identifier associated with the first resource data to be rendered in the system memory; the first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when creating the first resource data to be rendered; the development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0103] Specifically, the system searches for the first resource data to be rendered in the system memory. If the first resource data to be rendered is found in the system memory, the system obtains the first resource identifier associated with the first resource data to be rendered in the system memory. If the first resource data to be rendered is not found in the system memory, the first resource data to be rendered and the first resource identifier in the device disk are loaded into the system memory, and the system obtains the first resource identifier corresponding to the first resource data to be rendered in the system memory.

[0104] For ease of understanding and description, this application example uses a game application as a business application. Please refer to [the relevant documentation / reference]. Figure 4 , Figure 4 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 1 .like Figure 4 As shown, terminal user 40a refers to the user using terminal device 40b. Terminal device 40b outputs game content 40c in the game application. Game content 40c includes a character 40d and a directional control 401b that is bound to the character 40d. The binding relationship between the directional control 401b and the character 40d indicates that triggering the directional control 401b can trigger the character 40d to move. If the screen corresponding to terminal device 40b is taken as a reference, then... Figure 4 The direction control 401b in the middle can include four direction controls, namely an up control, a down control, a left control, and a right control.

[0105] Please see again. Figure 4 If terminal user 40a triggers the down control in directional control 401b, terminal device 40b will determine the triggering of the down control as input event data 40e, and transmit the input event data 40e to business server 100 via the network. Business server 100 includes CPU (Central Processing Unit) hardware (hereinafter referred to as CPU) for providing data processing services, and GPU hardware (hereinafter referred to as GPU) for providing resource rendering services.

[0106] After the central processing unit obtains the input event data 40e sent by the terminal device 40b, it obtains the first business content used to describe the game content displayed by the terminal device 40b. The first business content is used to describe the character 40d, the first position information of the character 40d, the first motion state, and the first surrounding environment, etc.

[0107] Based on the input event data 40e (e.g.) Figure 4In the example of a downward trigger control, the central processing unit (CPU) updates the game logic and scene state. Specifically, in response to the downward trigger operation, it updates the first business content to obtain the second business content. This second business content describes the character's second position information, second motion state, and second surrounding environment after responding to the downward trigger operation. The CPU then determines the elements contained in the second business content as those requiring rendering. Figure 4 Taking character 40d as an example, the resource data used to render character 40d is determined as the first resource data to be rendered in the game application. The resource data used to render character 40d may include geometric data describing character 40d and texture data corresponding to character 40d.

[0108] When determining the resource data to be rendered for the game application (referred to as the first resource data to be rendered for distinction), the central processing unit (CPU) searches for the first resource data to be rendered in system memory. The system memory may store an index table 40f, which contains the resource data (…). Figure 4 The index key generated by the resource identifier (abbreviated as resource) and the index key generated by the resource identifier (abbreviated as resource) Figure 4 The index value generated by the identifier (abbreviated as identifier). Figure 4 Index table 40f illustrates three specific index key-value pairs. The first index key-value pair contains an index key generated from resource 1 (representing specific resource data, such as geometric data containing vertex coordinates, normals, and coordinates, or a color texture indicated by an element (e.g., character 40d)) and an index value generated from 1111111a (which represents the resource identifier corresponding to resource 1). The second index key-value pair contains an index key generated from resource 2 and an index value generated from 1111111b (which represents the resource identifier corresponding to resource 2). The third index key-value pair contains an index key generated from resource 3 and an index value generated from 1111111c (which represents the resource identifier corresponding to resource 3).

[0109] Based on the above description, the central processing unit (CPU) searches for resource data for rendering character 40d in index table 40f of the system memory. If resource data for rendering character 40d is found in index table 40f, then... Figure 4 For example, if resource 1 is used to render character 40d, the central processing unit (CPU) can determine that resource 1 is the first resource data to be rendered. Therefore, it retrieves the index value in index table 40f that has an index relationship with resource 1, such as... Figure 4 Example 1111111a is used as the first resource identifier 40g.

[0110] If no resource data for rendering character 40d is found in index table 40f, such as Figure 4The example resources 1, 2, and 3 are all different from the resource data used to render character 40d. Therefore, the central processing unit obtains the resource data used to render character 40d (such as...) from disk 401f (representing the aforementioned device disk) of the business server 100. Figure 4 Example resource 4), and the resource identifier corresponding to that resource data (e.g., Figure 4 Example 1111111d), that is Figure 4 Let the first resource data to be rendered be exemplified as resource 4, and the first resource identifier be exemplified as 1111111d. Further, the central processing unit loads the first resource data to be rendered, exemplified as resource 4, and the first resource identifier, exemplified as 1111111d, into system memory. Specifically, it can load them into... Figure 4 In the example index table 40f, the first resource identifier, i.e., 1111111d, is obtained from the index table 40f which contains resources 4 and 1111111d that have an index relationship.

[0111] Step S102: Obtain the first resource identifier list for the graphics card memory from the system memory, and search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory.

[0112] Specifically, when the first resource identifier is found in the first resource identifier list, it is determined that the graphics card memory stores the first resource data to be rendered; wherein, the first resource data to be rendered stored in the graphics card memory is the resource data determined by the preloading function; the resource data determined by the preloading function belongs to the full resource data contained in the device disk; or, the first resource data to be rendered stored in the graphics card memory is resource data that is repeatedly rendered.

[0113] Computer equipment (including business servers) includes three important storage media: hard disks, system memory (RAM), and graphics memory (VRAM), each playing a different role in the computer's operation. The following is a detailed explanation of these three storage media:

[0114] 1. Disk: A disk is a non-volatile storage medium used for long-term data storage. Common disk types include hard disk drives (HDDs) and solid-state drives (SSDs).

[0115] Features:

[0116] Non-volatile: Data will not be lost even in the event of a power outage.

[0117] Large capacity: Typically used to store operating systems, applications, and user data.

[0118] Read and write speeds: SSDs are much faster than HDDs, but HDDs are relatively cheaper.

[0119] Application scenarios:

[0120] Storage of operating system and applications: When the computer starts up, the operating system is loaded from the disk into memory.

[0121] Store user data, such as documents, images, and videos.

[0122] 2. Memory (also known as RAM, Random Access Memory) is a volatile storage medium used to temporarily store data and programs used during computer operation.

[0123] Features:

[0124] Volatility: Data in memory will be lost after power failure.

[0125] High speed: Read and write speeds are much faster than disks, used for temporary storage of running programs and data.

[0126] Limited capacity: Usually smaller than a hard disk, but faster.

[0127] Application scenarios:

[0128] Running a program: When the operating system and applications run, they load the necessary data and code into memory.

[0129] Temporary storage: Used to store temporary data, such as variables and function call stacks.

[0130] 3. Video Memory (VRAM): VRAM is dedicated memory for graphics cards and is used to store graphics data and image information.

[0131] Features:

[0132] Specialization: Video memory is dedicated to graphics processing and is relatively independent of system memory.

[0133] High speed: The read and write speed of video memory is usually faster than that of system memory, making it suitable for graphics processing tasks.

[0134] Capacity: The capacity of video memory is usually smaller than that of system memory, but as the demand for graphics processing increases, the capacity of video memory is also constantly increasing.

[0135] Application scenarios:

[0136] Graphics processing: Video memory is used to store graphics data, such as textures, vertex data, frame buffers, etc.

[0137] Gaming and graphics applications: In gaming and graphics-intensive applications, the performance of video memory directly affects the speed and quality of graphics rendering.

[0138] The three storage media—disk, RAM, and video memory—work together in a computer system to ensure that the computer can run and process data efficiently.

[0139] After determining the resource data that needs to be rendered (referred to as the first resource data to be rendered for distinction), the CPU of the business server needs to determine whether the graphics processor used to provide resource rendering services has loaded the first resource data to be rendered. Therefore, the CPU retrieves the first resource identifier list for the graphics card memory from the system memory. Please refer to [link to relevant documentation] as well. Figure 5 , Figure 5 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 2 .like Figure 5 As shown, the first resource identifier list 40h contains three resource identifiers: 1111111a, 1111111b, and 1111111c. The inclusion of resource identifier 1111111a in the first resource identifier list 40h indicates that resource data corresponds to resource identifier 1111111a. Figure 5 Example: Resource 1 has been loaded into graphics card memory 401h; similarly, if the first resource identifier list 40h contains resource identifier 1111111b, it indicates that resource data ( ) corresponds to resource identifier 1111111b. Figure 5 Example: Resource 2) has been loaded into graphics card memory 401h; if the first resource identifier list 40h contains resource identifier 1111111c, it indicates that there is resource data corresponding to resource identifier 1111111c. Figure 5 Example: Resource 3) has been loaded into GPU memory 401h.

[0140] like Figure 5 As shown in the example, graphics card memory 401h stores index table 40i, which contains resource data ( Figure 5 The index key generated by the resource identifier (abbreviated as resource) and the index key generated by the resource identifier (abbreviated as resource) Figure 5 The index value generated by the identifier (abbreviated as identifier). Figure 5Index table 40i illustrates three specific index key-value pairs. The first index key-value pair contains an index key generated from resource 1 (representing specific resource data, such as geometric data containing vertex coordinates, normals, coordinates, or a color texture indicated by an element (e.g., character 40d)) and an index value generated from 1111111a; the second index key-value pair contains an index key generated from resource 2 and an index value generated from 1111111b; the third index key-value pair contains an index key generated from resource 3 and an index value generated from 1111111c.

[0141] It needs to be emphasized that, Figure 5 The description of the index table 40i stored in the graphics card memory 401h is related to... Figure 4 The index table 40f described in the system memory storage is not the same index table, and in actual application, the index key-value pairs with index relationships contained in the two index tables may be different.

[0142] Please see again. Figure 5 The central processing unit searches for the first resource identifier in the first resource identifier list 40h. If the first resource identifier is... Figure 4 In the example 1111111a, the CPU can find the first resource identifier in the first resource identifier list 40h. Therefore, it can be determined that resource 1 (representing the first resource data to be rendered) corresponding to the first resource identifier in example 1111111a has been loaded into the graphics card memory 401h. Figure 5 The example index table 40i contains resource 1.

[0143] Step S103: If the first resource identifier is found in the first resource identifier list, then the first resource data to be rendered in the graphics card memory is rendered.

[0144] Specifically, based on the first resource data to be rendered, rendering instructions are obtained and transmitted to the graphics processor; in the graphics processor, the first resource data to be rendered is read from the graphics card memory according to the rendering instructions; the first resource data to be rendered is input into the rendering pipeline, the rendering pipeline is executed, the first resource data to be rendered is rendered, and the rendering result is obtained.

[0145] This step may further include: if the first resource identifier is not included in the first resource identifier list, then loading the first resource data to be rendered from the system memory into the graphics card memory; when the first resource data to be rendered is successfully loaded into the graphics card memory, adding the first resource identifier to the first resource identifier list to obtain the third resource identifier list; the third resource identifier list is used to indicate that the third resource data to be rendered, which is the same as the first resource data, has been loaded into the graphics card memory when it is determined that the fifth resource identifier corresponding to the third resource data to be rendered of the business application is the same as the first resource identifier.

[0146] Rendering instructions are generated by the central processing unit (CPU) based on the first set of resource data to be rendered (such as geometric data and texture data). Rendering instructions may specifically include setting the rendering state (such as depth testing and backface culling), binding data (such as vertex buffers and textures), and triggering drawing calls. These instructions are then transmitted to the graphics processing unit (GPU) through the graphics application programming interface (API).

[0147] This application does not limit the type of graphics API, which can be set according to the actual application scenario, including but not limited to OpenGL (a cross-platform 3D graphics API widely used in high-performance graphics rendering), OpenGLES (a lightweight version of OpenGL designed for embedded systems and mobile devices), Vulkan (a low-overhead, high-performance cross-platform graphics and computing API that emphasizes multithreading and explicit control), and Direct3D (a powerful graphics API that provides rich functionality and high-performance rendering capabilities, suitable for the development of various graphics-intensive applications).

[0148] After the graphics processor receives the rendering instructions, it reads the first resource data to be rendered (such as geometric data and texture data) from the graphics card memory according to the rendering instructions, and executes the rendering pipeline based on the first resource data to be rendered. The rendering pipeline is usually divided into the following main stages:

[0149] (1) Vertex Processing

[0150] Input: Vertex data (such as vertex coordinates, normals, UV coordinates, where UV coordinates are a coordinate system used in computer graphics to map two-dimensional textures to the surface of a three-dimensional model).

[0151] deal with:

[0152] The vertex shader processes each vertex.

[0153] Transform vertices from model space to screen space (using the model matrix, view matrix, and projection matrix).

[0154] Calculate information such as the lighting and color of the vertices.

[0155] Output: Transformed vertex data.

[0156] (2) Primitive Assembly

[0157] Input: Processed vertex data.

[0158] deal with:

[0159] Assemble vertices into primitives (such as points, lines, and triangles).

[0160] Output: Graph data.

[0161] (3) Rasterization

[0162] Input: Image data.

[0163] deal with:

[0164] Decompose primitives into pixels (or fragments).

[0165] Calculate the position of each pixel on the screen.

[0166] Output: Pixel data.

[0167] (4) Fragment Processing

[0168] Input: pixel data.

[0169] deal with:

[0170] The Fragment Shader calculates the final color for each pixel.

[0171] This includes texture mapping, lighting calculation, and shadow calculation.

[0172] Output: Final pixel color.

[0173] (5) Tests and Blending

[0174] Input: Final pixel color.

[0175] deal with:

[0176] Depth Test: Determines whether a pixel is visible.

[0177] Stencil Test: Used for special effects (such as outline strokes).

[0178] Blending: Handling the color mixing of transparent or semi-transparent objects.

[0179] Output: The final pixel values ​​written to the frame buffer.

[0180] Through the above-mentioned processing stages, the graphics processor obtains the rendering result of the first resource data to be rendered, i.e., the image data.

[0181] Combination Figure 4 as well as Figure 5 If the first resource identifier is Figure 4 In example 1111111d, the CPU cannot find the first resource identifier in the first resource identifier list 40h. Therefore, as... Figure 5 As shown, the central processing unit loads resource 4, which is the first resource data to be rendered, and 1111111d, which is the first resource identifier, from the system memory into the graphics card memory 401h. Specifically, it can load index table 40i into the graphics card memory 401h to obtain index table 40j. Index table 40j not only contains index table 40i, but also contains the newly loaded resource 4 and 1111111d with index relationship.

[0182] After loading the first resource data to be rendered in index table 40j... Figure 5 When using resource 4 as an example, the central processing unit will assign the first resource identifier ( Figure 5 Adding 1111111d) to the first resource identifier list 40h results in the third resource identifier list 40k, as shown below. Figure 5 As shown.

[0183] Understandably, after obtaining the third resource identifier list of 40k, the subsequent processing procedure of the business server is the same as described above. First, the central processing unit processes the data based on the first resource to be rendered, such as... Figure 5 Resource 4, as shown in the example, obtains rendering instructions and transmits these instructions to the graphics processor via the graphics API. Please see also... Figure 5 In the graphics processor, the application server reads the first resource data to be rendered from index table 40j in the graphics card memory 401h according to the rendering instructions. Figure 5 Taking resource 4 as an example, the first resource data to be rendered is input into the rendering pipeline, the rendering pipeline is executed, the first resource data to be rendered is rendered, and the rendering result 40m is obtained.

[0184] Understandable Figure 4 Example game content 40c, character 40d and Figure 5In the example rendering result 40m, character 40d represents the same character, differing only in their state, such as position and surrounding environment. Furthermore, Figure 4 The first business content in the document describes game content 40c. Figure 4 The second business content in the text describes the rendering result 40m. It can be understood that the first business content is equivalent to the game content 40c, and the second business content is equivalent to the rendering result 40m. The difference is that the presentation format is different. The first business content and the second business content are in text form, while the game content 40c and the rendering result 40m are in image form.

[0185] As can be seen from the above, in the development stage of the resource data, the resource identifier of the resource data is determined, and the resource data and its corresponding resource identifier are associated and stored in the business server. Therefore, when the resource data is the resource data to be rendered in the business application, the pre-calculated resource identifier can be directly obtained and used, which can reduce the real-time computing resources of the rendering process corresponding to the resource data, thereby improving the business response speed of the business application and ensuring the display effect of the business content output by the business application.

[0186] Please see Figure 6 , Figure 6 This is a flowchart illustrating a data processing method provided in an embodiment of this application. Figure 2 This method can be implemented by a business server (e.g., the one mentioned above). Figure 1 The business server 100 shown can execute the service, or it can be executed by a terminal device (e.g., the one described above). Figure 1 The terminal device 200a) shown can execute the method, but it can also be executed interactively by the business server and the terminal device. For ease of understanding, this embodiment uses the execution by the business server as an example, where the business server acts as a computer device to execute the data processing method. Figure 6 As shown, the data processing method includes steps S201-S206.

[0187] Step S201: When determining the first resource data to be rendered for the business application, obtain the first resource identifier associated with the first resource data to be rendered from the system memory; the first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when creating the first resource data to be rendered; the development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0188] For details, please refer to the following: Figure 7 , Figure 7 This is a schematic diagram of a data processing scenario provided in an embodiment of this application. Figure 3 .like Figure 7As shown, development object 70a refers to the object used for developing business applications. In this embodiment, it specifically refers to the object of resource data used for developing business applications. Development object 70a can create resource data through development device 70b. Figure 7 The example resource data is texture data 70c. A texture is a type of image data used to add detail and realism to the surface of an object during 3D graphics rendering. Textures can be two-dimensional (2D textures) or three-dimensional (3D textures). In software implementation, the GPU driver loads the textures defined in development object 70a onto the GPU hardware for rendering.

[0189] This application does not limit the method by which the development device 70b creates texture data 70c, including but not limited to the method by which an artist (i.e., the development object 70a) uses tools (such as Photoshop or Substance Painter) to create it, or by procedural generation (such as noise functions or mathematical algorithms).

[0190] After the texture data 70c is created, the development device 70b calculates a unique identifier for the texture data 70c. This application embodiment does not limit the method of calculating the unique identifier, but can set it according to the actual application scenario, including but not limited to hash algorithm, scale-invariant feature transform (SIFT) algorithm, and color histogram.

[0191] Figure 7 The resource identifier 70d of the texture data 70c is exemplified as 1111111z. Further, the development device 70b transmits the resource data exemplified as texture data 70c and the resource identifier 70d exemplified as 1111111z to the cloud server. The cloud server constructs the correspondence between the resource data exemplified as texture data 70c and the resource identifier 70d exemplified as 1111111z and stores it in the disk 70e.

[0192] This application primarily describes cloud applications, specifically business applications and business servers. For details on the specific systems of these cloud applications, please refer to the above description. Figure 2 The corresponding description. Cloud applications include, but are not limited to, cloud gaming, cloud education, cloud video, and cloud conferencing.

[0193] Containers are a type of operating system virtualization. Through isolation mechanisms (e.g., namespaces), multiple operating systems share the same kernel in kernel space, while remaining independent in user space. Each container operates independently in user space. Processes, file systems, network resources, and other internal resources are isolated and do not affect each other. Multiple containers share the same operating system kernel. This means that containers do not consume as many resources as virtual machines because they do not require their own independent kernels.

[0194] By deploying operating system container technology, multiple operating system instances can run in parallel on the same server (supporting ARM or x86 architecture). Taking cloud gaming as an example, the game rendering results on the server side are transmitted to the remote user client via video stream, where the user client decodes and displays the game, thus separating game logic from display and optimizing resource utilization and user experience.

[0195] Multiple operating system containers can run concurrently on a cloud server; please refer to [further details]. Figure 7 , Figure 7 Taking the parallel operation of two operating system containers on a cloud server as an example, it can be understood that the implementation process for a scenario where the total number of operating system containers is greater than 2 is the same as the implementation process for a scenario where the total number of operating system containers is equal to 2.

[0196] like Figure 7 As shown, the two operating system containers are the first operating system container and the second operating system container, respectively. The operating system running in the first operating system container and the operating system running in the second operating system container can be the same or different, which is not limited here.

[0197] The first operating system container runs a cloud application client 1, such as cloud gaming client 1. The second operating system container runs a cloud application client 2, such as cloud gaming client 2. Figure 7 In the example, when the two cloud application clients are running concurrently for cloud gaming, cloud application client 1 can be a cloud server. Figure 7 The user client 1 shown is located in a client environment system (e.g., Android system), which is a cloud gaming client virtualized within a first operating system container. For example... Figure 7 As shown, the cloud application client 1 interacts with the user client 1 running on the terminal device 200a via a communication connection. Similarly, the cloud application client 2 can provide data to the cloud server according to... Figure 7 The user client 2 shown is located in a client environment system (e.g., Android system), which is another cloud gaming client virtualized within a second operating system container. Similarly, as... Figure 7As shown, the cloud application client 2 interacts with the terminal device 200c via a communication connection to exchange data with the client 2.

[0198] like Figure 7 The terminal device 200a shown can be an electronic device used by user A. This terminal device 200a can integrate one or more user clients 1 associated with cloud gaming. Here, user client 1 can be understood as a client installed on the terminal device that can provide the user with the corresponding cloud gaming experience service. For example, if user client 1 in terminal device 200a is a client associated with cloud game 1, then the icon of user client 1 in terminal device 200a can be the icon of cloud game 1. User client 1 can provide user A with the cloud game 1 experience service; that is, user A can experience cloud game 1 through user client 1 in terminal device 200a.

[0199] When user A wants to experience cloud game 1, they can trigger a operation on user client 1 in terminal device 200a. At this time, terminal device 200a can respond to the startup operation for user client 1, obtain the startup command generated by user client 1, and then send the startup command to the cloud server to create or allocate a cloud game 1 instance for user A in the cloud server (that is, create or allocate a cloud application client 1 corresponding to cloud game 1 for user A), and run the cloud application client 1 corresponding to user A in the cloud server; at the same time, user client 1 in terminal device 200a will also start successfully, that is, user client 1 in terminal device 200a and cloud application client 21a in server 2a maintain the same running state.

[0200] Similarly, such as Figure 7The terminal device 200c shown can be an electronic device used by user B. This terminal device 200c can also integrate one or more user clients associated with cloud gaming. For example, user client 2 in terminal device 200c can also be a client associated with the aforementioned cloud game 1. Therefore, the icon of user client 2 in terminal device 200c can also be the icon of cloud game 1. When user B wants to experience cloud game 1, they can perform a trigger operation on user client 2 in terminal device 200c. At this time, terminal device 200c can respond to the startup operation on user client 2, obtain the startup command generated by user client 2, and then send the startup command to the cloud server to create or allocate a cloud game 1 instance for user B in the cloud server (i.e., create or allocate a cloud application client 2 corresponding to cloud game 1 for user B), and run the cloud application client 2 corresponding to user B in the cloud server. Simultaneously, user client 2 in terminal device 200c will also successfully start, meaning that user client 2 in terminal device 200c and cloud application client 2 in the cloud server maintain the same running state.

[0201] like Figure 7 As shown, when cloud application client 1 and cloud application client 2 run the same cloud game (i.e., the aforementioned cloud game 1) concurrently on the cloud server, both can execute the game logic in cloud game 1. For example, both cloud application client 1 and cloud application client 2 can access various storage media on the cloud server (such as...). Figure 7 The system uses graphics card memory, disk, and system memory to load the resource data to be rendered. It should be understood that in a business scenario of running the same cloud game on the same server, to avoid duplicate loading of the same cloud game's resource data, this application proposes that resource sharing can be used to fully leverage the service advantages of cloud games, increase the number of concurrent connections on the cloud server, and thus reduce the operating costs of cloud games.

[0202] like Figure 7 As shown, when the cloud application client 1 determines the first resource data to be rendered (e.g., texture data) of the cloud game 1 based on the input event data sent by the user client 1, it can obtain the first resource identifier associated with the first resource data to be rendered from the system memory. In this embodiment, there is no need to perform real-time calculation on the first resource data to be rendered to generate the first resource identifier. It can be obtained directly from the system memory or disk, thus saving a lot of computing resources.

[0203] Similarly, when cloud application client 2 determines the first resource data to be rendered (e.g., texture data) of cloud game 1 based on the input event data sent by user client 2, it can obtain the first resource identifier stored in association with the first resource data to be rendered from system memory.

[0204] Step S202: Obtain the first resource identifier list for the graphics card memory from the system memory, and search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory.

[0205] For details, please refer to [link / reference]. Figure 7 The cloud application client 1 retrieves a list of first resource identifiers for the graphics card memory from the system memory. It then searches this list for a resource identifier identical to the first resource identifier. If the first resource identifier is found in the list, it means the first resource data to be rendered has been loaded into the graphics card memory. If the first resource identifier is not found in the list, it means the first resource data to be rendered has not been loaded into the graphics card memory.

[0206] Step S203: If the first resource identifier is found in the first resource identifier list, then the first resource data to be rendered in the graphics card memory is rendered.

[0207] Specifically, cloud application client 1 generates a rendering instruction based on the first resource data to be rendered, and sends the rendering instruction to the graphics processor. The graphics processor obtains the first resource data to be rendered based on the rendering instruction, and uses the first resource data to be rendered as the input of the rendering pipeline to execute the rendering pipeline, thereby obtaining the rendered image (i.e. the image data of the cloud game 1) when the cloud application client 1 is running the cloud game 1.

[0208] For ease of understanding, in the case where the aforementioned cloud application client 2 and cloud application client 1 are running concurrently on the cloud server, Figure 7 The shared resource data shown can specifically be the rendered resources when cloud application client 2 first requests and loads the first resource data to be rendered through the graphics processor to output the aforementioned rendered image. Obviously, if it is determined that there is shared resource data in the video memory of the cloud server that is associated with the first resource data to be rendered requested and loaded by the current cloud application client 1, the shared resource data can be quickly obtained through resource sharing, thereby avoiding the repeated loading of the first rendering resource data in the cloud server.

[0209] It should be understood that in the aforementioned scenario of simultaneous server and game operation, both cloud application client 1 and cloud application client 2 can share rendered resources in the same video memory through the GPU driver of the cloud server to avoid duplicate loading of the same resource data. For example, if Figure 7 Both cloud application client 1 and cloud application client 2 shown need to load the same texture data and the same shading data, so they can achieve this through resource sharing. Figure 7The illustrated video memory is configured with one video memory space for storing texture resources corresponding to texture data and another video memory space for storing shading resources corresponding to shading data for the two cloud application clients (i.e., cloud application client 1 and cloud application client 2). This means that, through resource sharing, this embodiment of the application eliminates the need to separately configure a video memory space for storing texture resources corresponding to texture data and another video memory space for storing shading resources corresponding to shading data for each cloud application client. This fundamentally solves the problem of allocating the same amount of video memory space of equal resource types to these cloud application clients in the same video memory. In other words, this embodiment of the application can share shared resource data in the same video memory through resource sharing, thereby avoiding the waste of video memory resources caused by repeatedly configuring the same size video memory space for different cloud application clients in the same video memory.

[0210] It should be understood that when cloud application client 2 first stores the rendered resource corresponding to the resource data to be rendered as shared resource data in... Figure 7 When the video memory is in the specified memory, there is no need to configure an additional video memory storage space of the same size for the cloud application client 1 that requests to load the same resource data to be rendered. This can effectively avoid the waste of video memory resources.

[0211] It's important to note that Cloud Application Client 1 and Cloud Application Client 2 can essentially be considered as a set of software on the server side containing complete cloud application functionality. They are static; however, each requires a corresponding process to run on the cloud server. These processes are dynamic. In other words, when Cloud Application Client 1 needs to be started on the cloud server, its corresponding process can be created and started. Running Cloud Application Client 1 on the cloud server essentially means running its process, which can be considered the basic execution entity of Cloud Application Client 1 on the cloud server. Similarly, when Cloud Application Client 2 needs to be started on the cloud server, its corresponding process can be created and started.

[0212] It should be understood that, such as Figure 7 As shown, the central processing unit and the graphics processing unit can run in the first operating system container in the cloud server, and provide the corresponding graphics interface for the cloud application client 1 running in the cloud server. For example, the process of the cloud application client 1 needs to call the graphics interface provided by the GPU driver to load the resource data to be rendered in order to obtain the rendered image of the cloud application client 1 when running the cloud game 1.

[0213] It should be understood that each frame of rendered image obtained by the graphics processor called by cloud application client 1 can be transmitted in real time to user client 1 in terminal device 200a as an encoded audio / video stream, so that user client 1 can further display each frame of rendered image after decoding. Similarly, each input event data obtained by user client 1 can be transmitted to cloud application client 1 as an input event data stream, so that cloud application client 1 can inject each parsed operation data into the cloud application running on cloud application client 1, thereby realizing data interaction between cloud application client 1 in cloud server and user client 1 in terminal device 200a. Likewise, it should be understood that each rendered image obtained by the graphics processor called by cloud application client 2 can be transmitted in real time to user client 2 in terminal device 200c for display; and each input event data obtained by user client 2 can be injected into cloud application client 2 running on cloud server, thereby realizing data interaction between cloud application client 2 in cloud server and user client 2 in terminal device 200c.

[0214] Step S204: When the running status of the business application meets the resource preloading conditions, determine the preloaded resource data based on the running status.

[0215] Specifically, if the running status of a business application changes from stopped to started at the first timestamp, then the started status satisfies the resource preloading condition. Based on the started status, the usage counts corresponding to all resource data within a historical time period are calculated; the second timestamp of the historical time period is earlier than the first timestamp; the second timestamp refers to the latest timestamp of the historical time period. The usage counts corresponding to all resource data are sorted from largest to smallest to obtain the sorted usage counts. The top *a* usage counts are obtained from the sorted usage counts; *a* is a positive integer. The resource data corresponding to the top *a* usage counts in the full resource data are determined as the preloaded resource data.

[0216] The specific process of determining the resource data corresponding to the top 'a' usage counts in the full resource data as preloaded resource data may include: determining the resource data corresponding to the top 'a' usage counts in the full resource data as 'a' candidate resource data; the 'a' candidate resource data include a first candidate resource data; the first candidate resource data is any one of the 'a' candidate resource data; retrieving the third resource identifier associated with the first candidate resource data from system memory; searching for the third resource identifier in the first resource identifier list; if the third resource identifier is found in the first resource identifier list, deleting the first candidate resource data from the 'a' candidate resource data; and determining the 'a' candidate resource data from which the first candidate resource data has been deleted as preloaded resource data.

[0217] The specific process of determining the a candidate resource data that will have the first candidate resource data deleted as preloaded resource data may include: obtaining the maximum usage count from b usage counts; the b usage counts include usage counts other than the usage counts ranked in the top a; determining the resource data corresponding to the maximum usage count in the full resource data as the second candidate resource data; if the first resource identifier list does not contain the fourth resource identifier corresponding to the second candidate resource data, then the second candidate resource data and the a candidate resource data that will have the first candidate resource data deleted as preloaded resource data.

[0218] Step S205: Load the preloaded resource data into the graphics card memory; the preloaded resource data loaded into the graphics card memory is used for rendering processing when it is determined that the preloaded resource data is the second resource data to be rendered for the business application; the timestamp of the preloaded resource data being determined as the second resource data to be rendered is later than the timestamp of the preloaded resource data being loaded into the graphics card memory.

[0219] Specifically, if a business application responds to a switching operation for the first business scenario, it is determined that the running state of the business application meets the resource preloading conditions; the switching operation for the first business scenario is used to indicate that the running state of the business application is switched from the first business scenario to the second business scenario; the resource data associated with the second business scenario in the full resource data is determined as preloaded resource data.

[0220] Specifically, if the business application is in the content output state, then the content output state is determined to meet the resource preloading conditions; based on the first business content output by the business application in the content output state, the first business content is identified and processed to predict the second business content used to update the first business content; the resource data used to generate the second business content in the full resource data is determined as the preloaded resource data.

[0221] The following will elaborate on the following two aspects: the specific definitions of the relevant functions and the timing of triggering these functions.

[0222] I. Specific definitions of relevant functions

[0223] This application's embodiments are further optimizations based on shared resource data, defining a series of new or improved functions. These functions aim to simplify the processing of resource identifiers and improve the efficiency of resource data loading, taking OpenGLES and texture data as examples:

[0224] 1.glPrecomputeTextureIdentifier()

[0225] Function: Allows developers to pre-calculate and set the unique identifier of a texture during the texture creation phase.

[0226] Parameters: texture data, identifier type (such as HASH value), identifier data, etc.

[0227] Return value: A success or failure indicator.

[0228] 2.glPreloadPrecomputedTexture()

[0229] Function: Used to upload textures with pre-computed identifiers to the GPU.

[0230] Parameters: list of texture data, list of pre-computed identifiers, etc.

[0231] Return value: A flag indicating whether the upload was successful or failed.

[0232] 3.glPreloadTextures()

[0233] Function: Used to upload a specified texture to the GPU.

[0234] Parameter: List of texture data.

[0235] Return value: A flag indicating whether the upload was successful or failed.

[0236] 4.glCheckTextureIdentifier()

[0237] Function: Checks whether there are already pre-computed textures with the identifier in the current GPU and verifies their validity.

[0238] Parameter: Texture identifier.

[0239] Return value: Whether the identifier exists and its status.

[0240] The introduction of the above functions not only provides developers with a more intuitive and convenient operation interface, but also effectively reduces the computational pressure in the real-time rendering process through pre-computation and pre-loading mechanisms.

[0241] II. The timing of triggering the above functions

[0242] To maximize the optimization effect, this invention specifies the exact time points at which the above functions are triggered in different stages. The following description uses cloud gaming as an example:

[0243] 1. Game Development Stage

[0244] Developers use glPrecomputeTextureIdentifier() to precompute texture identifiers when creating game assets.

[0245] 2. When the game starts

[0246] The game engine calls glPreloadTextures() or glPreloadPrecomputedTexture() to preload key texture resources to the GPU based on preset scene requirements and texture usage frequency.

[0247] 3. During scene transitions

[0248] Before switching to a new scene, the system calls glPreloadTextures() or glPreloadPrecomputedTexture() to preload critical texture resources to the GPU to ensure the timely availability of textures required for the new scene.

[0249] 4. During game runtime

[0250] When a new texture needs to be uploaded, the system uses glPreloadPrecomputedTexture() to upload a texture with a pre-computed identifier, avoiding real-time calculation.

[0251] During game startup, scene switching, and runtime, at certain critical rendering nodes, the system can quickly verify the validity of texture identifiers using glCheckTextureIdentifier() to determine whether texture resources need to be preloaded. Please also refer to... Figure 8 , Figure 8 This is a schematic diagram illustrating the function triggering timing provided in an embodiment of this application. By precisely controlling the triggering timing of these functions, this embodiment of the application can achieve efficient operation of texture management without affecting the cloud application experience.

[0252] This application embodiment constructs a complete resource data (including texture) optimization scheme through explicit function definitions and precise trigger timing settings, which significantly improves the performance of graphics rendering and the end-user experience.

[0253] The embodiments of this application are applicable not only to Android cloud gaming, but also to operating systems such as personal computer cloud gaming; the embodiments of this application are applicable not only to implementations based on the Linux kernel, but also to implementations based on the Windows kernel.

[0254] Step S206: Add the second resource identifier corresponding to the preloaded resource data to the first resource identifier list to obtain the second resource identifier list; the second resource identifier is determined by the development device for the second resource data to be rendered when creating the second resource data to be rendered; the development device is used to associate the second resource identifier with the second resource data to be rendered and store it on the disk of the business server.

[0255] Specifically, this application proposes two key optimization measures. The first optimization measure allows developers to pre-compute resource identifiers for resource data (e.g., textures, geometry) during the application development phase and directly use the pre-computed resource identifiers at runtime. This optimization measure eliminates the real-time computing requirements at runtime, thereby reducing the burden on the GPU and improving the application's response speed.

[0256] The second optimization measure: This application employs preloading technology, which loads resource data such as textures into GPU memory in advance during game startup, scene switching, or other appropriate times. This preloading strategy avoids performance fluctuations caused by loading resource data such as textures at critical moments, ensuring the smoothness and stability of the application.

[0257] Through the innovative methods described above, the embodiments of this application significantly improve the performance of graphics rendering and the business application experience of end users.

[0258] As can be seen from the above, in the development stage of the resource data, the resource identifier of the resource data is determined, and the resource data and its corresponding resource identifier are associated and stored in the business server. Therefore, when the resource data is the resource data to be rendered in the business application, the pre-calculated resource identifier can be directly obtained and used, which can reduce the real-time computing resources of the rendering process corresponding to the resource data, thereby improving the business response speed of the business application and ensuring the display effect of the business content output by the business application.

[0259] Further, please see Figure 9 , Figure 9This is a schematic diagram of a data processing apparatus provided in an embodiment of this application. The data processing apparatus 1 described above can be used to execute the corresponding steps in the method provided in the embodiment of this application. For example... Figure 9 As shown, the data processing device 1 may include: an acquisition module 11, a search module 12, a rendering module 13, and a determination module 14.

[0260] The acquisition module 11 is used to acquire a first resource identifier associated with the first resource data to be rendered in the system memory when the first resource data to be rendered in the business application is determined; the first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when the first resource data to be rendered is created; the development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0261] The lookup module 12 is used to obtain a first resource identifier list for the graphics card memory in the system memory, and to search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory;

[0262] The rendering module 13 is used to render the first resource data to be rendered in the graphics card memory if the first resource identifier is found in the first resource identifier list.

[0263] In one possible implementation, the data processing device 1 further includes a determining module 14, which is configured to perform the following operations:

[0264] When the running status of a business application meets the resource preloading conditions, the preloaded resource data is determined based on the running status.

[0265] The preloaded resource data is loaded into the graphics card memory; the preloaded resource data loaded into the graphics card memory is used for rendering processing when it is determined that the preloaded resource data is the second resource data to be rendered for the business application; the timestamp at which the preloaded resource data is determined to be the second resource data to be rendered is later than the timestamp at which the preloaded resource data is loaded into the graphics card memory;

[0266] The second resource identifier corresponding to the preloaded resource data is added to the first resource identifier list to obtain the second resource identifier list; the second resource identifier is determined by the development device for the second resource data to be rendered when creating the second resource data to be rendered; the development device is used to associate the second resource identifier with the second resource data to be rendered and store it on the disk of the business server.

[0267] In one possible implementation, module 14 is also configured to perform the following operations:

[0268] If the running status of the business application is updated from the stopped running status to the started running status at the first timestamp, then the started running status is determined to meet the resource preloading conditions.

[0269] Then, module 14 determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0270] Based on the startup and running status, the usage counts of all resources within the historical time period are calculated; the second timestamp of the historical time period is earlier than the first timestamp; the second timestamp refers to the latest timestamp of the historical time period.

[0271] Sort the usage counts of all resource data from largest to smallest to obtain the sorted usage counts;

[0272] Get the usage counts of the first 'a' items from the sorted usage counts; where 'a' is a positive integer.

[0273] The resource data with the first 'a' usage counts in the full resource data are identified as preloaded resource data.

[0274] In one possible implementation, the determining module 14 determines the resource data corresponding to the top 'a' usage counts from the full resource data as preloaded resource data, for use in performing the following operations:

[0275] The resource data with the top a usage counts in the full resource data are identified as a candidate resource data; the a candidate resource data includes the first candidate resource data; the first candidate resource data is any one of the a candidate resource data.

[0276] Retrieve the third resource identifier associated with the first candidate resource data from the system memory;

[0277] Search for the third resource identifier in the first resource identifier list. If the third resource identifier is found in the first resource identifier list, delete the first candidate resource data from the a candidate resource data.

[0278] The 'a' candidate resource data that have had their first candidate resource data deleted are identified as preloaded resource data.

[0279] In one possible implementation, the determining module 14 will delete a candidate resource data of the first candidate resource data and determine them as preloaded resource data, for the following operations:

[0280] Find the maximum number of uses among b usage counts; b usage counts include the usage counts after sorting, excluding the usage counts that are ranked in the top a.

[0281] The resource data with the highest number of uses in the full resource data is identified as the second candidate resource data;

[0282] If the first resource identifier list does not contain the fourth resource identifier corresponding to the second candidate resource data, then the second candidate resource data and the a candidate resource data that have had the first candidate resource data deleted are determined as preloaded resource data.

[0283] In one possible implementation, the data processing device 1 further includes a determining module 14, which is configured to perform the following operations:

[0284] If the business application responds to the switching operation for the first business scenario, it is determined that the running state of the business application meets the resource preloading conditions; the switching operation for the first business scenario is used to indicate that the running state of the business application is switched from the first business scenario to the second business scenario.

[0285] Then, module 14 determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0286] Resource data related to the second business scenario from the full resource data is identified as preloaded resource data.

[0287] In one possible implementation, module 14 is also configured to perform the following operations:

[0288] If the business application is in the content output state, then the content output state is determined to meet the resource preloading conditions.

[0289] Then, module 14 determines the preloaded resource data based on the running status, which is used to perform the following operations:

[0290] Based on the first business content output by the business application in the content output state, the first business content is identified and processed to predict the second business content to update the first business content.

[0291] The resource data used to generate the second business content from the full resource data is identified as preloaded resource data.

[0292] In one possible implementation, the acquisition module 11 acquires a first resource identifier stored in system memory that is associated with the first resource data to be rendered, and performs the following operations:

[0293] Search for the first resource data to be rendered in the system memory. If the first resource data to be rendered is found in the system memory, then obtain the first resource identifier associated with the first resource data to be rendered from the system memory.

[0294] If the first resource data to be rendered is not found in the system memory, the first resource data to be rendered and the first resource identifier in the device disk are loaded into the system memory, and the first resource identifier corresponding to the first resource data to be rendered is obtained in the system memory.

[0295] In one possible implementation, the data processing device 1 further includes a determining module 14, which is configured to perform the following operations:

[0296] When the first resource identifier is found in the list of first resource identifiers, it is determined that the graphics card memory stores the first resource data to be rendered.

[0297] Among them, the first resource data to be rendered stored in the graphics card memory is the resource data determined by the preloading function; the resource data determined by the preloading function belongs to the full resource data contained in the device disk;

[0298] Alternatively, the first resource data to be rendered stored in the graphics card memory may be resource data that is repeatedly rendered.

[0299] In one possible implementation, rendering module 13 performs rendering processing on the first resource data to be rendered in the graphics card memory, for the following operations:

[0300] Based on the first resource data to be rendered, obtain the rendering instructions and transmit the rendering instructions to the graphics processor;

[0301] In the graphics processor, the first resource data to be rendered is read from the graphics card memory according to the rendering instructions;

[0302] The first resource data to be rendered is input into the rendering pipeline, the rendering pipeline is executed, the first resource data to be rendered is rendered, and the rendering result is obtained.

[0303] In one possible implementation, rendering module 13 is also used to perform the following operations:

[0304] If the first resource identifier is not included in the list of first resource identifiers, then the first resource data to be rendered in the system memory will be loaded into the graphics card memory.

[0305] When the first resource data to be rendered is successfully loaded into the graphics card memory, the first resource identifier is added to the first resource identifier list to obtain the third resource identifier list. The third resource identifier list is used to indicate that the third resource data to be rendered, which is the same as the first resource identifier, has been loaded into the graphics card memory when it is determined that the fifth resource identifier corresponding to the third resource data to be rendered of the business application is the same as the first resource identifier.

[0306] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0307] As can be seen from the above, in the development stage of the resource data, the resource identifier of the resource data is determined, and the resource data and its corresponding resource identifier are associated and stored in the business server. Therefore, when the resource data is the resource data to be rendered in the business application, the pre-calculated resource identifier can be directly obtained and used, which can reduce the real-time computing resources of the rendering process corresponding to the resource data, thereby improving the business response speed of the business application and ensuring the display effect of the business content output by the business application.

[0308] Further, please see Figure 10 , Figure 10 This is a schematic diagram of the structure of a computer device provided in an embodiment of this application. The computer device may be... Figure 1 The terminal device or service server shown. For example... Figure 10 As shown, the computer device 1000 may include: at least one processor 1001, such as a CPU, at least one network interface 1004, a user interface 1003, a memory 1005, and at least one communication bus 1002. The communication bus 1002 is used to enable communication between these components.

[0309] In some embodiments, the user interface 1003 may include a display screen and a keyboard, and the network interface 1004 may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory 1005 may be high-speed RAM or non-volatile memory, such as at least one disk storage device. Optionally, the memory 1005 may also be at least one storage device located remotely from the aforementioned processor 1001.

[0310] like Figure 10 As shown, the memory 1005, which serves as a computer storage medium, may include an operating system, a network communication module, a user interface module, and a device control application program.

[0311] exist Figure 10In the computer device 1000 shown, the network interface 1004 provides network communication functionality; the user interface 1003 is mainly used to provide an input interface for the user; and the processor 1001 can be used to call the device control application stored in the memory 1005 to achieve:

[0312] When determining the first resource data to be rendered for a business application, a first resource identifier associated with the first resource data to be rendered is obtained from the system memory. The first resource identifier is determined by the development device corresponding to the business application when creating the first resource data to be rendered. The development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application.

[0313] Retrieve the first resource identifier list for the graphics card memory from the system memory, and search for the first resource identifier in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory;

[0314] If the first resource identifier is found in the first resource identifier list, then the first resource data to be rendered in the graphics card memory is rendered.

[0315] It should be understood that the computer device 1000 described in the embodiments of this application can perform the data processing methods or apparatus described in the preceding embodiments, and will not be repeated here. Furthermore, the beneficial effects of using the same methods will also not be repeated.

[0316] This application also provides a computer-readable storage medium storing a computer program. When executed by a processor, the computer program implements the data processing methods or apparatus described in the preceding embodiments, which will not be repeated here. Furthermore, the beneficial effects of using the same methods will also not be repeated.

[0317] The aforementioned computer-readable storage medium may be the data processing apparatus provided in any of the foregoing embodiments or the internal storage unit of the aforementioned computer device, such as the hard disk or memory of the computer device. The computer-readable storage medium may also be an external storage device of the computer device, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., provided on the computer device.

[0318] Furthermore, the computer-readable storage medium may include both internal storage units and external storage devices of the computer device. The computer-readable storage medium is used to store the computer program and other programs and data required by the computer device. The computer-readable storage medium can also be used to temporarily store data that has been output or will be output.

[0319] This application also provides a computer program product, which includes a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, enabling the computer device to perform the data processing methods or apparatus described in the preceding embodiments, which will not be repeated here. Furthermore, the beneficial effects of using the same method will also not be repeated here.

[0320] The terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish different objects, not to describe a specific order. Furthermore, the term "comprising," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, apparatus, product, or device that includes a series of steps or units is not limited to the listed steps or modules, but may optionally include steps or modules not listed, or may optionally include other step units inherent to these processes, methods, apparatuses, products, or devices.

[0321] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this application.

Claims

1. A data processing method, characterized in that, The method is performed by a computer device, and the method includes: When determining the first resource data to be rendered for a business application, a first resource identifier associated with the first resource data to be rendered is obtained from the system memory; the first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when creating the first resource data to be rendered; the development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application. A first resource identifier list for the graphics card memory is obtained from the system memory, and the first resource identifier is searched in the first resource identifier list; the resource data corresponding to the resource identifier in the first resource identifier list has been loaded into the graphics card memory; If the first resource identifier is found in the first resource identifier list, then the first resource data to be rendered in the graphics card memory is rendered.

2. The method according to claim 1, characterized in that, The method further includes: When the running state of the business application meets the resource preloading conditions, the preloaded resource data is determined based on the running state; The preloaded resource data is loaded into the graphics card memory; the preloaded resource data loaded into the graphics card memory is used for rendering processing when it is determined that the preloaded resource data is the second resource data to be rendered for the business application; the timestamp at which the preloaded resource data is determined to be the second resource data to be rendered is later than the timestamp at which the preloaded resource data is loaded into the graphics card memory; The second resource identifier corresponding to the preloaded resource data is added to the first resource identifier list to obtain the second resource identifier list; the second resource identifier is determined by the development device for the second resource data to be rendered when creating the second resource data to be rendered; the development device is used to associate the second resource identifier with the second resource data to be rendered and store it on the disk of the business server.

3. The method according to claim 2, characterized in that, The method further includes: If the running status of the business application is updated from the stopped running status to the started running status at the first timestamp, then it is determined that the started running status meets the resource preloading condition; The step of determining the preloaded resource data based on the running status includes: Based on the startup and running status, the usage counts corresponding to the full resource data within the historical time period are counted; the second timestamp of the historical time period is earlier than the first timestamp; the second timestamp refers to the latest timestamp of the historical time period. The usage counts corresponding to the full set of resource data are sorted from largest to smallest to obtain the sorted usage counts; From the sorted usage counts, obtain the usage counts of the first 'a' items, where 'a' is a positive integer. The resource data with the first 'a' usage counts in the full resource data are identified as preloaded resource data.

4. The method according to claim 3, characterized in that, The step of determining the resource data corresponding to the top a usage counts in the full resource data as preloaded resource data includes: The resource data with the top a usage counts in the full resource data are identified as a candidate resource data; the a candidate resource data includes a first candidate resource data; the first candidate resource data is any one of the a candidate resource data. In the system memory, obtain the third resource identifier that is associated with the first candidate resource data; Search for the third resource identifier in the first resource identifier list. If the third resource identifier is found in the first resource identifier list, delete the first candidate resource data from the a candidate resource data. The a candidate resource data that are deleted from the first candidate resource data are determined as preloaded resource data.

5. The method according to claim 4, characterized in that, The step of deleting a candidate resource data from the first candidate resource data and determining them as preloaded resource data includes: Find the maximum number of uses among b usage counts; the b usage counts include the usage counts after sorting, excluding the usage counts that are ranked in the first a. The resource data corresponding to the maximum number of uses in the full resource data is determined as the second candidate resource data; If the first resource identifier list does not contain the fourth resource identifier corresponding to the second candidate resource data, then the second candidate resource data and a candidate resource data that delete the first candidate resource data are determined as preloaded resource data.

6. The method according to claim 2, characterized in that, The method further includes: If the business application responds to the switching operation for the first business scenario, it is determined that the running state of the business application meets the resource preloading condition; the switching operation for the first business scenario is used to indicate that the running state of the business application is switched from the first business scenario to the second business scenario. The step of determining the preloaded resource data based on the running status includes: Resource data associated with the second business scenario from the full resource data is identified as preloaded resource data.

7. The method according to claim 2, characterized in that, The method further includes: If the running state of the business application is content output state, then it is determined that the content output state meets the resource preloading condition; The step of determining the preloaded resource data based on the running status includes: Based on the first service content output by the service application in the content output state, the first service content is identified and processed to predict the second service content for updating the first service content. The resource data used to generate the second business content from the full resource data is identified as preloaded resource data.

8. The method according to claim 1, characterized in that, The step of obtaining the first resource identifier associated with the first resource data to be rendered from the system memory includes: The system searches for the first resource data to be rendered in the system memory. If the first resource data to be rendered is found in the system memory, the system obtains the first resource identifier associated with the first resource data to be rendered stored in the system memory. If the first resource data to be rendered is not found in the system memory, the first resource data to be rendered and the first resource identifier in the device disk are loaded into the system memory, and the first resource identifier corresponding to the first resource data to be rendered is obtained in the system memory.

9. The method according to claim 1, characterized in that, The method further includes: When the first resource identifier is found in the first resource identifier list, it is determined that the graphics card memory stores the first resource data to be rendered; The first resource data to be rendered stored in the graphics card memory is the resource data determined by the preloading function; the resource data determined by the preloading function belongs to the full resource data contained in the device disk; Alternatively, the first resource data to be rendered stored in the graphics card memory may be resource data that is repeatedly rendered.

10. The method according to claim 1, characterized in that, Rendering the first resource data to be rendered in the graphics card memory includes: Based on the first resource data to be rendered, obtain the rendering instructions and transmit the rendering instructions to the graphics processor; In the graphics processor, the first resource data to be rendered is read from the graphics card memory according to the rendering instructions; The first resource data to be rendered is input into the rendering pipeline, the rendering pipeline is executed, the first resource data to be rendered is rendered, and the rendering result is obtained.

11. The method according to claim 1, characterized in that, The method further includes: If the first resource identifier is not included in the first resource identifier list, then the first resource data to be rendered in the system memory is loaded into the graphics card memory; When the first resource data to be rendered is successfully loaded into the graphics card memory, the first resource identifier is added to the first resource identifier list to obtain a third resource identifier list; the third resource identifier list is used to indicate that the third resource data to be rendered, which is the same as the first resource identifier, has been loaded into the graphics card memory when it is determined that the fifth resource identifier corresponding to the third resource data to be rendered of the business application is the same as the first resource identifier.

12. A data processing apparatus, characterized in that, The device operates on a computer device, and the device includes: The acquisition module is used to acquire a first resource identifier associated with the first resource data to be rendered in the system memory when the first resource data to be rendered in the business application is determined; the first resource identifier is determined by the development device corresponding to the business application for the first resource data to be rendered when the first resource data to be rendered is created; the development device is used to associate the first resource identifier with the first resource data to be rendered and store it on the disk of the business server corresponding to the business application. The lookup module is used to obtain a first list of resource identifiers for graphics card memory from the system memory, and to search for the first resource identifier in the first list of resource identifiers; the resource data corresponding to the resource identifiers in the first list of resource identifiers has been loaded into the graphics card memory; The rendering module is used to render the first resource data to be rendered in the graphics card memory if the first resource identifier is found in the first resource identifier list.

13. A computer device, characterized in that, include: Processor, memory, and network interface; The processor is connected to the memory and the network interface, wherein the network interface is used to provide data communication functions, the memory is used to store computer programs, and the processor is used to call the computer programs so that the computer device executes the method according to any one of claims 1-11.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program adapted to be loaded and executed by a processor to cause a computer device having the processor to perform the method of any one of claims 1-11.

15. A computer program product, characterized in that, The computer program product includes a computer program stored in a computer-readable storage medium, the computer program being adapted to be read and executed by a processor to cause a computer device having the processor to perform the method of any one of claims 1-11.